包含反斜杠的路径字符串的无法识别的转义序列

时间:2009-08-19 22:01:07

标签: c# .net string path escaping

以下代码为每个反斜杠生成有关“无法识别的转义序列”的编译器错误:

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

我想我需要逃避反斜杠?我该怎么做?

5 个答案:

答案 0 :(得分:195)

每次都可以使用双反斜杠

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

或使用@符号

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

答案 1 :(得分:24)

试试这个:

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

问题是在字符串中,\是转义字符。通过使用@符号,您可以告诉编译器忽略转义字符。

您还可以逃避\

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

答案 2 :(得分:11)

var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

答案 3 :(得分:8)

如果您的字符串是文件路径,如您的示例所示,您还可以使用Unix样式文件路径:

string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";

但其他答案对C#中的字符串转义有更通用的解决方案。

答案 4 :(得分:5)

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

这将起作用,或者前面的例子也会起作用。 @“...”表示从字面上处理引号之间的所有内容,因此您可以

@"Hello
world"

包含文字换行符。我更老了,更喜欢用“\\”

逃避“\”