2009-08-19 8 views

risposta

176

È possibile utilizzare una doppia barra rovesciata ogni volta

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

o utilizzare il simbolo @

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

Hm. Quattro risposte a una domanda banale, e solo una completamente corretta .. –

+0

Questo anche aiutato a risolvere un problema Html.TextBoxFor che stavo avendo Utilizzando l'@ prima dell'espressione regolare è stata risolta la sequenza di escape non riconosciuta, in cui il doppio backslash non è riuscito. – Joshua

+0

non è riuscito a svuotare questa risposta abbastanza, ha salvato il mio bacon. il simbolo @ per mantenere pulito il percorso –

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

Su una nota minore, un "è poi scappato come" " – flq

+0

Anche se corretto, non risponde in modo esatto alla domanda: –

23

Prova questo:

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

Il problema è che in una stringa, un \ è un carattere di escape. Usando il segno @ dici al compilatore di ignorare i caratteri di escape.

È inoltre possibile ottenere da con sfuggire al \:

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

FWIW e per aiutare Googlebot, il termine per" "è un" letterale stringa letterale ". Anche se ho anche sentito parlare di "string letteral", che include tecnicamente il "normale stringa letterale" di solo "". Http://msdn.microsoft.com/en-us/library/aa691090(VS. 71) .aspx –

+0

ottimo lavoro, ero solo uso singolo '\' – khurram

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

Funzionerà, o anche gli esempi precedenti. @ "..." significa trattare tutto tra le virgolette letteralmente, in modo da poter fare

@"Hello 
world" 

Per includere un ritorno a capo letterale. Sono più vecchia scuola e preferisco fuga "\" con "\\"

+0

Ma il doppio "non sono trattati letteralmente. –

8

Se la stringa è un percorso di file, come nel tuo esempio, è anche possibile utilizzare Unix percorsi di file stile:

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

Ma le altre risposte hanno le soluzioni più generali per l'escaping delle stringhe in C#.

Problemi correlati