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

Нужно ли мне избегать обратной косой черты в файле конфигурации?

У меня есть файл конфигурации, myapp.exe.config. В файле у меня есть атрибут с полным именем файла пути как значение.

<add key="InfoFile" value="c:\temp\info.txt" />

Кажется, что работает, если я использую один или двойной обратный слэш. То есть

<add key="InfoFile" value="c:\\temp\\info.txt" />

работает также. Каков правильный способ сделать это?

4b9b3361

Ответ 1

Вам это не нужно. Все, что находится внутри значения атрибута, это символьные данные.

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

В любом случае, вам может потребоваться знать, что С# имеет оператор @ для объявления стенографических строк, что означает, что вам не нужно избегать обратных косых черт при использовании литералов в коде:

string somePath = @"C:\blah\blih\bluh.txt";

Ответ 2

Обратная косая черта не имеет особого значения в XML, поэтому их не следует избегать.

Кроме того, если вы избежите обратных косых черт в XML, вы бы не использовали \\, вы использовали бы &#92;.

Причина, по которой он работает с двойной обратной косой чертой, также заключается в том, что файловая система прощает. Вы можете использовать путь c:\\temp\\info.txt для доступа к файлу c:\temp\info.txt.

Ответ 3

В основном URL или URI содержит одну косую черту \, поэтому лучше использовать единую косую черту. Проблема возникает при написании кода, но в XML нет проблем с использованием одной косой черты.

Ответ 4

Я думаю, что лучше всего будет предотвращать двойную обратную косую черту на всякий случай, но если она работает, зачем ее менять. Возможно, замените "\\" на "\", когда вы читаете значение конфигурации в своем приложении.