在文件路径中打印反斜杠
本文关键字:打印 文件 路径 | 更新日期: 2023-09-27 18:16:14
假设我有一个文件名以"n"开头的文件(如"nFileName.doc")。为什么当我将其路径作为字符串并将其打印到控制台时,"'n"序列不被视为转义序列(并且更广泛-路径中的单个反斜杠不被视为转义字符)?
string fileName = Directory.GetFiles(@"C:'Users'Wojtek'Documents").Where(path => Path.GetFileName(path).StartsWith("n")).First();
string str = "Hello'nworld";
Console.WriteLine(fileName); // C:'Users'Wojtek'Document'nFileName.doc
Console.WriteLine(str); //Hello
//world
转义的概念仅与源代码(以及其他特定情况,如正则表达式)相关。当将字符串打印到屏幕上时,与无关- Console.WriteLine
没有任何转义序列这样的概念。
例如:
string x = @"'n";
这是一个包含两个字符的字符串——反斜杠和n
。所以当你把它打印到屏幕上时,你得到一个反斜杠和n
。
因为fileName
等于
C:''Users''Wojtek''Document''nFileName.doc
在你的代码中使用,这样文件名开头的n
就不会被当作任何转义字符的一部分。
因为n
之前的反斜杠已经在文件路径中转义了。想想看:
Console.WriteLine("''n");
这将把'n
写入控制台,因为backslash
被转义了…
为了验证这一点,调试程序并查看fileName
的值,您将看到所有反斜杠都被转义了。