【发布时间】:2010-11-21 03:10:14
【问题描述】:
以下代码为每个反斜杠生成有关“无法识别的转义序列”的编译器错误:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
我想我需要转义反斜杠?我该怎么做?
【问题讨论】:
标签: c# .net string path escaping
以下代码为每个反斜杠生成有关“无法识别的转义序列”的编译器错误:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
我想我需要转义反斜杠?我该怎么做?
【问题讨论】:
标签: c# .net string path escaping
您可以每次使用双反斜杠
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
或使用@符号
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
【讨论】:
试试这个:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
问题在于,在字符串中,\ 是转义字符。通过使用@ 符号,您可以告诉编译器忽略转义字符。
你也可以通过转义\:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
【讨论】:
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
【讨论】:
如果您的字符串是文件路径,如您的示例所示,您还可以使用 Unix 样式的文件路径:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
但其他答案对 C# 中的字符串转义有更通用的解决方案。
【讨论】:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
这将起作用,或者前面的示例也将起作用。 @"..." 表示按字面意思对待引号之间的所有内容,所以你可以这样做
@"Hello
world"
包含文字换行符。我更老派,更喜欢用“\\”转义“\”
【讨论】: