Нераспознанная escape-последовательность для строки пути, содержащей обратные косые черты

Был бы агент пользователя в запросе давать Вам достаточно информации для принятия решения?

существует польза список агентов пользователя здесь .

82
задан Cody Gray 9 August 2013 в 07:51
поделиться

5 ответов

Вы можете использовать двойной обратный слеш каждый раз

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

или использовать символ @

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
208
ответ дан 24 November 2019 в 09:02
поделиться
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
12
ответ дан 24 November 2019 в 09:02
поделиться

Попробуйте следующее:

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

Проблема в том, что в строке \ является escape-символом. Используя знак @ , вы указываете компилятору игнорировать escape-символы.

Вы также можете обойтись экранированием \ :

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
25
ответ дан 24 November 2019 в 09:02
поделиться
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

Это будет работать, или предыдущие примеры тоже. @ "..." означает буквально обрабатывать все, что находится между кавычками, поэтому вы можете сделать

@"Hello
world"

, чтобы включить буквальный перевод строки. Я более олдскульный и предпочитаю убегать "\" с "\\"

5
ответ дан 24 November 2019 в 09:02
поделиться

Если ваша строка - это путь к файлу, как в вашем примере, вы также можете использовать пути к файлам в стиле Unix:

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

Но в других ответах есть более общие решения для экранирования строк в C #.

9
ответ дан 24 November 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: