在文件路径中打印反斜杠

时间:2014-08-04 16:12:43

标签: c#

假设我有一个名称以" 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

3 个答案:

答案 0 :(得分:4)

转义的概念仅与代码(以及正则表达式等其他特定情况)相关。将字符串打印到屏幕时,相关 - Console.WriteLine没有任何转义序列这样的概念。

例如,考虑:

string x = @"\n";

这是一个包含两个字符的字符串 - 反斜杠和n。因此,当您将其打印到屏幕上时,得到反斜杠并n

答案 1 :(得分:1)

因为fileName将等于

C:\\Users\\Wojtek\\Document\\nFileName.doc
在您的代码中

,因此文件名开头的n不会被视为任何转义字符的一部分。

答案 2 :(得分:0)

因为n之前的反斜杠已在文件路径中转义。考虑一下:

Console.WriteLine("\\n");

这会将\n写入控制台,因为backslash已转义...

为了验证此调试您的程序并查看fileName的值,您将看到所有反斜杠都被转义。