Poniższy kod generuje błąd kompilatora dotyczący „nierozpoznanej sekwencji ucieczki” dla każdego ukośnika odwrotnego:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Chyba muszę uciec od ukośnika odwrotnego? Jak mogę to zrobić?
Za każdym razem możesz użyć podwójnego odwrotnego ukośnika
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
lub użyj symbolu @
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Spróbuj tego:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Problem polega na tym, że w łańcuchu a
\
jest znakiem ucieczki. Używając@
znaku, mówisz kompilatorowi, aby ignorował znaki ucieczki.Możesz także poradzić sobie z ucieczką przed
\
:string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
źródło
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
źródło
Jeśli ciąg jest ścieżką do pliku, jak w przykładzie, możesz również użyć ścieżek do plików w stylu uniksowym:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
Ale inne odpowiedzi mają bardziej ogólne rozwiązania dotyczące ucieczki ciągów w C #.
źródło
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
To zadziała, albo poprzednie przykłady też. @ „...” oznacza dosłowne traktowanie wszystkiego między cudzysłowami, więc możesz to zrobić
@"Hello world"
Aby dołączyć dosłowny znak nowej linii. Jestem bardziej stara i wolę uciec „\” z „\\”
źródło