Ответ 1
Вы можете использовать двойную обратную косую черту каждый раз
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
или используйте символ @
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Следующий код генерирует ошибку компилятора об "непризнанной escape-последовательности" для каждой обратной косой черты:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Думаю, мне нужно избежать обратной косой черты? Как это сделать?
Вы можете использовать двойную обратную косую черту каждый раз
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
или используйте символ @
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Попробуйте следующее:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Проблема в том, что в строке a \
является символом escape. Используя знак @
, вы сообщаете компилятору игнорировать escape-символы.
Вы также можете пройти с помощью \
:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Если ваша строка является файловым путем, как в вашем примере, вы также можете использовать пути файлов стиля Unix:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
Но другие ответы имеют более общие решения по экранированию строк в С#.
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Это будет работать, или предыдущие примеры тоже. @ "..." означает лечить все между кавычками буквально, так что вы можете сделать
@"Hello
world"
Чтобы включить литеральную новую строку. Я более старая школа и предпочитаю бежать "\" с "\\"