Nierozpoznana Sekwencja escape dla łańcucha ścieżki zawierającego ukośniki

Poniższy kod generuje błąd kompilatora dotyczący "nierozpoznanej sekwencji escape"dla każdego ukośnika wstecznego:

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Chyba muszę uciec przed ukośnikiem? Jak mam to zrobić?
Author: Cody Gray, 2009-08-20

5 answers

Możesz użyć podwójnego ukośnika za każdym razem

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

Lub użyj symbolu @

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
 184
Author: Brandon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 22:02:33

Spróbuj tego:

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

Problem polega na tym, że w ciągu znaków {[2] } jest znakiem escape. Używając znaku @ każesz kompilatorowi ignorować znaki escape.

Można również przejść przez ucieczkę \:

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
 24
Author: Captain Cosmodrome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 21:43:37
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
 11
Author: Piotr Czapla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 22:01:47

Jeśli łańcuch znaków 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 ucieczki ciągów w C#.

 8
Author: Scott Weinstein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 21:44:06
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

To zadziała, lub poprzednie przykłady też. @"..."oznacza traktuj wszystko między znakami cytowania dosłownie, więc możesz to zrobić

@"Hello
world"

Aby dołączyć literalny znak nowego wiersza. Jestem bardziej stara szkoła i wolę uciec " \ " z "\\ "

 5
Author: Bob Kaufman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-19 22:04:01