Secuencia de escape no reconocida para cadena de ruta que contiene barras invertidas

El siguiente código genera un error de comstackción sobre una “secuencia de escape no reconocida” para cada barra invertida:

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

¿Supongo que necesito escapar de la barra invertida? ¿Cómo puedo hacer eso?

Puedes usar una barra diagonal inversa doble cada vez

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

o usa el símbolo @

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

Prueba esto:

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

El problema es que en una cadena, un \ es un carácter de escape. Al usar el signo @ le dices al comstackdor que ignore los caracteres de escape.

También puede salir con el escape de \ :

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

Si su cadena es una ruta de archivo, como en su ejemplo, también puede usar rutas de archivos de estilo Unix:

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

Pero las otras respuestas tienen las soluciones más generales para el escape de cadenas en C #.

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

Esto funcionará, o los ejemplos anteriores también lo harán. @ “…” significa tratar todo entre las comillas literalmente, para que pueda hacer

 @"Hello world" 

Para incluir una nueva línea literal. Soy más viejo y prefiero escapar de “\” con “\\”