Do I need to escape backslash in a config file?

RogerS picture RogerS · Apr 16, 2011 · Viewed 27.3k times · Source

I have a config file, myapp.exe.config. In the file I have an attribute with a fullpath filename as the value.

<add key="InfoFile" value="c:\temp\info.txt" />

It seems to work if I use a single or double backslash. That is,

<add key="InfoFile" value="c:\\temp\\info.txt" />

works also. What is the correct way to do this?

Answer

Mat&#237;as Fidemraizer picture Matías Fidemraizer · Apr 16, 2011

You don't need that. Anything within an attribute value is character data.

Since you're reading these values using C#, they'll get escaped as if they would be a literal path string in code.

Anyway, you might want to know that C# has @ operator to declare verbatim strings, meaning that you don't need to escape backslashes when using literal paths in code:

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