El siguiente código genera un error del compilador 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?
Prueba esto:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
El problema es que en una cadena, a
\
es un carácter de escape. Al usar el@
signo, le dice al compilador que ignore los caracteres de escape.También puede sobrevivir escapando de
\
:string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
fuente
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
fuente
Si su cadena es una ruta de archivo, como en su ejemplo, también puede usar rutas de archivo 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 #.
fuente
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Esto funcionará, o los ejemplos anteriores también. @ "..." significa tratar todo lo que se encuentra entre las comillas literalmente, para que pueda hacer
@"Hello world"
Para incluir una nueva línea literal. Soy más de la vieja escuela y prefiero escapar "\" con "\\"
fuente