Подтвердить что ты не робот

Как написать обратную косую черту (\) в строке?

Я хочу написать что-то вроде этого C:\Users\UserName\Documents\Tasks в textbox:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

Я получаю сообщение об ошибке:

Непризнанная escape-последовательность.

Как написать обратную косую черту в строке?

4b9b3361

Ответ 1

Символ обратной косой черты ("\") - это специальный escape-символ, используемый для обозначения других специальных символов, таких как новые строки (\n), символы табуляции (\t) или кавычки (\"). Если вы хотите включить символ обратной косой черты само по себе вам нужно две обратные косые черты или использовать строку @ verbatim: "\\Tasks" или @"\Tasks".

Прочитайте документацию MSDN/Спецификацию С#, в которой обсуждаются экранированные символы с использованием символа обратной косой черты и использования буквального строкового литерала.

Вообще говоря, большинство разработчиков на С#.NET предпочитают использовать строки @ verbatim при построении путей к файлам/папкам, поскольку это избавляет их от необходимости записывать двойную обратную косую черту все время, и они могут напрямую копировать/вставлять путь, поэтому я бы предложил Вы привыкли делать то же самое.


Тем не менее, в данном случае я бы порекомендовал вам использовать служебный метод Path.Combine как в ответе @lordkain, так как тогда вам не нужно беспокоиться о том, включены ли обратные слеши в пути, и случайно удвоить слэши. или вообще их опуская при объединении частей путей.

Ответ 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);

Надеюсь, это поможет. ура