2010-12-28 4 views
4

c:\user\test\test.jpgのようなパス文字列を持っていますが、どうすればc:\\user\\test\\test.jpgにすることができますか?自動的にパスをエスケープする方法

+0

あなたは、文字列s = "C:\ユーザー\テスト\のtest.jpg" のような文字列を割り当てることはできません。コンパイルエラーが発生しますが、文字列は "\"ではなく "\\"しか使用できませんが、文字列リテラル "\\"は常に "\"と同じように扱われます。 – AsifQadri

+0

@Asif、それは正しくありません。私の答えを見てください。 –

+0

@AsifQadriでは、逐語的な文字列構文を使用して文字列(at記号)を定義するだけでなく、このような文字列を 'main'関数の引数に渡すこともできます。 – AnneTheAgile

答えて

12
string s = s.Replace(@"\", @"\\"); 
6

コードで文字列リテラルを使用している場合は、エスケープする必要があります。とにかく自動エスケープが必要なのはなぜですか?エスケープを必要としないリテラルの前に@を使用することができます。

19

はこれを試してみてください:

string path = @"c:\user\test\test.jpg"; 
+0

これとは逆の方法は?経路の中に\\のランダムな番号がある場合、例えば、 C:\ abcdef \ smstr \ iretrieval \ 20_ニュースグループ\ 20_ニュースグループ\ alt.atheism \ ? –

関連する問題