web-dev-qa-db-ja.com

文字列にバックスラッシュを追加

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

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

私が得ている結果は: "c:\ Users\My Name\Pictures est"

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

13
misha312

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

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

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

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

30
Steve

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

_path + "\\test"_

または使用:

_path + @"\test"_

さらに良いことに、_Path.Combine_があなたのために汚い仕事をします:

Path.Combine(path, "test");

Pathは_System.IO_名前空間に存在します。

20
Moo-Juice

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

  1. @記号を使用します。例:path + @ "\ test"
  2. 二重バックスラッシュを使用します(例:path + "\\ test")
7
Greg Dietsche

文字列の追加。

add += "\\"; //or :"\\" means backslash
6
trinalbadger587

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

  • 使用する Path.Combine

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

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

    Console.WriteLine(path + @"\test");
    
3
tafa

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

1
nitsi