2009-08-19 33 views

Respuesta

176

También se puede usar una doble barra invertida cada vez

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

o utilizar el símbolo @

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

Hm. Cuatro respuestas a una pregunta trivial, y solo una me pareció completamente correcta. –

+0

Esto también ayudó a resolver un problema Html.TextBoxFor que estaba teniendo Usando el @ antes de que la expresión regular resolviera la secuencia de escape no reconocida, donde falló la doble barra invertida. – Joshua

+0

no pudo votar esta respuesta lo suficiente, salvó mi tocino. el símbolo @ para mantener la ruta limpia –

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

En una nota menor, a "se escaparon a continuación como '' – flq

+0

Aunque correcta, no excactly responder a la pregunta. –

23

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 compilador que ignore los caracteres de escape.

También puede llegar a funcionar con escapar de la \:

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

Fwiw y ayudar a Googlebot, el término para @"" es una 'cadena literal palabra por palabra'. Aunque también he oído que se lo denomina simplemente "literal de cadena", eso técnicamente incluye el "literal de cadena normal" de solo "". Http://msdn.microsoft.com/en-us/library/aa691090(VS. 71) .aspx –

+0

gran trabajo, solo usé el single '\' – khurram

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

Esto funcionará, o los ejemplos anteriores también lo harán. @ "..." significa tratar a todo lo que entre las comillas, literalmente, lo que puede hacer

@"Hello 
world" 

Para incluir una nueva línea literal. Estoy escuela más antigua y prefiero escapar "\" con "\\"

+0

Pero el doble "no se tratan literalmente. –

8

Si la cadena es una ruta de archivo, como en el ejemplo, se puede también utilizar las rutas de archivos Unix estilo:

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#.

Cuestiones relacionadas