2013-06-03 35 views
12

パスがあり、testという名前の新しいサブフォルダを追加したい。 どうすればいいか教えてください。 私のコードは次のとおりです。文字列にバックスラッシュを追加する

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); 
Console.WriteLine(path+"\test"); 

私は取得しています結果は次のとおりです。「C:\ユーザー私の名前\ピクチャEST \」

正しい方法を見つける助けてください。

+0


は\\トンを使用するか、パス+ @ "\テスト" – trinalbadger587

答えて

29

文字列を連結するパス名を作成しないでください。

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); 
Console.WriteLine(Path.Combine(path, "test")); 

Path.Combineメソッドを使用し Path classはパス、ファイル名と拡張子が含まれている文字列を処理するために多くの有用な静的メソッドが含まれています。このクラスは多くの一般的なエラーを回避するのに非常に便利で、オペレーティングシステム間の移植性を向上させるためのコードも用意しています(Linuxの場合は "/"、勝利の場合は "/")。

Pathクラスは名前空間System.IOで定義されています。
コードにusing System.IO;を追加する必要があります。

+0

合意を使用するかタブで使用します - フレームワークを使用してください。その理由がそこにあります。 –

18

あなたはそれをエスケープする必要があります。 \tは、タブ0x09のエスケープシーケンスです。

path + "\\test"

または使用:

path + @"\test"

いっそのこと、Path.Combineがあなたのために汚い仕事をしてみましょう:

Path.Combine(path, "test");

PathSystem.IO名前空間に存在し

7

2つのオプションがあります。

  1. 例えば、@記号を使用します。パス+ "\\テスト"
3

:+ @ "\テスト"

  • パスは、二重のバックスラッシュなどを使用するが、バックスラッシュ'\'は、C#の文字列のエスケープ文字です。 次のことが可能です。Path.Combine

    Path.Combine(path, "test"); 
    
  • は、エスケープ文字をエスケープ

    • 使用。

      Console.WriteLine(path+"\\test"); 
      
    • 逐語的な文字列リテラルを使用します。

      Console.WriteLine(path + @"\test"); 
      
  • 5

    文字列を追加します。

    add += "\\"; //or :"\\" means backslash 
    
    0

    バックスラッシュはエスケープ文字なので、
    Console.WriteLine(path+"\\test");
    またはT \ Console.WriteLine([email protected]"\test");

    関連する問題