2016-10-16 2 views
-5

В моем проекте я сохраняю xml-файлы в папку. Переменная «header» содержит имя файла.Почему Visual Studio заменяет мою косую черту обратной косой чертой?

string header = "anyString"; 

Линия для сохранения файла является:

xmlDoc.Save([email protected]"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\{header}.cutml"); 

Это работает хорошо, и все, кроме случаев, когда заголовок содержит косую черту (/), как:

string header = "d/d"; 

Тогда я получаю a DirectoryNotFoundException, потому что Visual Studio не смог найти путь

"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\d\d.cutml"

Таким образом, Visual Studio автоматически заменяет косую черту обратной косой чертой. Но почему и как я могу сохранить файл с косой чертой в моей переменной?

+2

'/' не является допустимым именем файла char. 'header' не должен содержать косой черты. –

+2

Имя файла или имя-каталога не может содержать косой черты, поскольку она используется в качестве разделителя ОС. – HimBromBeere

+1

Я очень сомневаюсь, что Visual Studio это делает. Вы имели в виду C#? –

ответ

1

Visual Studio не заменяет / на \. Проверьте это:

string header = "d/d"; 
string result = [email protected]"D:\00_Coding\00_Repos\MarcSchaetz\MarcSchaetz.STCut\Data\{header}.cutml"; 

//Result: D:\\00_Coding\\00_Repos\\MarcSchaetz\\MarcSchaetz.STCut\\Data\\d/d.cutml 

Как для использования / в пути - Он не может быть использован для имен файлов/каталогов в операционной системе. Если вы пытаетесь создать на вас получите это: (я попытался вставить /)

enter image description here

Так что имеет смысл, что код с бросить DirectoryNotFoundException, потому что на самом деле нет каталога с этим путь

+0

Глупо меня. Конечно, ты прав. Благодарю вас: D – MarcSchaetz