Нужно ли мне избегать обратной косой черты в файле конфигурации?
У меня есть файл конфигурации, myapp.exe.config.
В файле у меня есть атрибут с полным именем файла пути как значение.
<add key="InfoFile" value="c:\temp\info.txt" />
Кажется, что работает, если я использую один или двойной обратный слэш. То есть
<add key="InfoFile" value="c:\\temp\\info.txt" />
работает также. Каков правильный способ сделать это?
Ответы
Ответ 1
Вам это не нужно. Все, что находится внутри значения атрибута, это символьные данные.
Поскольку вы читаете эти значения с помощью С#, они будут экранированы, как если бы они были буквальной строкой пути в коде.
В любом случае, вам может потребоваться знать, что С# имеет оператор @
для объявления стенографических строк, что означает, что вам не нужно избегать обратных косых черт при использовании литералов в коде:
string somePath = @"C:\blah\blih\bluh.txt";
Ответ 2
Обратная косая черта не имеет особого значения в XML, поэтому их не следует избегать.
Кроме того, если вы избежите обратных косых черт в XML, вы бы не использовали \\
, вы использовали бы \
.
Причина, по которой он работает с двойной обратной косой чертой, также заключается в том, что файловая система прощает. Вы можете использовать путь c:\\temp\\info.txt
для доступа к файлу c:\temp\info.txt
.
Ответ 3
В основном URL или URI содержит одну косую черту \
, поэтому лучше использовать единую косую черту. Проблема возникает при написании кода, но в XML нет проблем с использованием одной косой черты.
Ответ 4
Я думаю, что лучше всего будет предотвращать двойную обратную косую черту на всякий случай, но если она работает, зачем ее менять. Возможно, замените "\\" на "\", когда вы читаете значение конфигурации в своем приложении.