Il codice seguente genera un errore del compilatore su una "sequenza di escape non riconosciuta" per ogni barra rovesciata:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Immagino di dover sfuggire al backslash? Come lo faccio?
Risposte:
È possibile utilizzare ogni volta una doppia barra rovesciata
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
oppure usa il simbolo @
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Prova questo:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Il problema è che in una stringa a \
è un carattere di escape. Usando il @
segno si dice al compilatore di ignorare i caratteri di escape.
Puoi anche cavartela sfuggendo \
:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Se la tua stringa è un percorso di file, come nel tuo esempio, puoi anche utilizzare percorsi di file in stile Unix:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
Ma le altre risposte hanno le soluzioni più generali per l'escape di stringhe in C #.
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Funzionerà, o anche gli esempi precedenti. @ "..." significa trattare letteralmente tutto ciò che si trova tra le virgolette, quindi puoi farlo
@"Hello
world"
Per includere una nuova riga letterale. Sono più vecchia scuola e preferisco scappare "\" con "\\"