我是否需要在配置文件中转义反斜杠?

我有一个配置文件myapp.exe.config。 在文件中,我有一个带有完整路径文件名的属性作为值。

 

如果我使用单反斜杠,它似乎有效。 那是,

  

也有效。 这样做的正确方法是什么?

你不需要那个。 属性值中的任何内容都是字符数据。

由于您使用C#读取这些值,因此它们将被转义,就好像它们是代码中的文字路径字符串一样。

无论如何,您可能想知道C#有@运算符来声明逐字符串,这意味着在代码中使用文字路径时不需要转义反斜杠:

 string somePath = @"C:\blah\blih\bluh.txt"; 

反斜杠在XML中没有特殊含义,因此不应对它们进行转义。

此外,如果你要以XML格式转义反斜杠,你就不会使用\\ ,你会使用\

它与双反斜杠一起使用的原因还在于文件系统是宽容的。 您可以使用路径c:\\temp\\info.txt来访问文件c:\temp\info.txt

基本上URL或URI保持单斜杠\所以,最好使用单斜杠。 编写代码时出现问题,但在XML中使用单斜杠没有问题。

我认为最好是防止双反斜杠,以防万一,但如果它有效,为什么要改变它。 当您将配置值读入应用程序时,可能将“\\”替换为“\”。