2016-10-16 24 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"; 

DirectoryNotFoundException Visual Studioはパスを見つけることができなかったため、

Visual Studioはスラッシュを自動的にバックスラッシュに置き換えます。しかし、どうして私の変数にスラッシュを入れたままファイルを保存することができますか?

+2

'/'は有効なファイル名charではありません。 'header'はスラッシュを含んではいけません。 –

+2

ファイル名またはディレクトリ名には、OSによってセパレータとして使用されるため、スラッシュを含めることはできません。 – HimBromBeere

+1

私はVisual Studioがこれをやっているのかどうかは疑いの余地がありません。あなたはC#を意味しましたか? –

答えて

1

/の代わりに\が表示されます。パス内の/の使用については

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

関連する問題