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