14

パスがあり、そこに test という名前の新しいサブフォルダーを追加したいと考えています。その方法を教えてください。私のコードは次のとおりです。

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

私が得ている結果は次のとおりです:「c:\Users\My Name\Pictures est」

正しい方法を見つけるのを手伝ってください。

4

6 に答える 6

31

文字列を連結するパス名を作成しようとしないでください。Path.Combineメソッド を使用する

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

Path クラスには、パス、ファイル名、および拡張子を含む文字列を処理するための便利な静的メソッドが多数含まれています。このクラスは、多くの一般的なエラーを回避するのに非常に役立ちます。また、オペレーティング システム間の移植性を向上させるためのコーディングも可能にします (win では "\"、Linux では "/")。

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

于 2013-06-03T14:48:15.110 に答える
20

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

path + "\\test"

または使用:

path + @"\test"

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

Path.Combine(path, "test");

PathSystem.IO名前空間に存在します。

于 2013-06-03T14:48:48.440 に答える
8

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

  1. @ 記号を使用します。例: path + @"\test"
  2. バックスラッシュを 2 つ使用します。例: path + "\\test"
于 2013-06-03T14:49:44.283 に答える
6

文字列追加;

add += "\\"; //or :"\\" means backslash
于 2014-01-18T02:57:33.390 に答える
3

バックスラッシュ'\'は、C# の文字列のエスケープ文字です。あなたはできる:

  • 使用するPath.Combine

    Path.Combine(path, "test");
    
  • エスケープ文字をエスケープします。

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

    Console.WriteLine(path + @"\test");
    
于 2013-06-03T14:52:50.623 に答える
1

バックスラッシュはエスケープ文字なので、
Console.WriteLine(path+"\\test");
またはを使用します
Console.WriteLine(path+@"\test");

于 2016-09-04T20:37:19.480 に答える