Как написать обратную косую черту (\) в строке?
Я хочу написать что-то вроде этого C:\Users\UserName\Documents\Tasks
в textbox
:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
Я получаю сообщение об ошибке:
Непризнанная escape-последовательность.
Как написать обратную косую черту в строке?
Ответы
Ответ 1
Символ обратной косой черты ("\"
) - это специальный escape-символ, используемый для обозначения других специальных символов, таких как новые строки (\n
), символы табуляции (\t
) или кавычки (\"
). Если вы хотите включить символ обратной косой черты само по себе вам нужно две обратные косые черты или использовать строку @
verbatim: "\\Tasks"
или @"\Tasks"
.
Прочитайте документацию MSDN/Спецификацию С#, в которой обсуждаются экранированные символы с использованием символа обратной косой черты и использования буквального строкового литерала.
Вообще говоря, большинство разработчиков на С#.NET предпочитают использовать строки @
verbatim при построении путей к файлам/папкам, поскольку это избавляет их от необходимости записывать двойную обратную косую черту все время, и они могут напрямую копировать/вставлять путь, поэтому я бы предложил Вы привыкли делать то же самое.
Тем не менее, в данном случае я бы порекомендовал вам использовать служебный метод Path.Combine
как в ответе @lordkain, так как тогда вам не нужно беспокоиться о том, включены ли обратные слеши в пути, и случайно удвоить слэши. или вообще их опуская при объединении частей путей.
Ответ 2
Чтобы избежать обратной косой черты, просто используйте 2 из них, например:
\\
Если вам нужно избегать других вещей, это может быть полезно..
Ответ 3
Для этой функции создана специальная функция Path.Combine()
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
Ответ 4
Просто избегайте "\"
с помощью + "\\Tasks"
или используйте строчную строку, например @"\Tasks"
Ответ 5
Предыдущий ответ правильный, но в этом конкретном случае я бы рекомендовал использовать метод System.IO.Path.Combine.
Здесь вы можете найти более подробную информацию:
http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx
Ответ 6
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";
Поместите двойную обратную косую черту вместо одной обратной косой черты...
Ответ 7
хотя этот пост довольно старый, я попробовал что-то, что сработало для моего случая.
Я хотел создать строковую переменную со значением ниже:
21541_12_1_13\":null
так что мой подход был такой:
-
построить строку, используя дословно
string substring = @"21541_12_1_13 \" ": null";
-
а затем удалите нежелательные обратные слеши, используя функцию удаления
строка newsubstring = substring.Remove(13, 1);
Надеюсь, это поможет. ура