2009-06-01 21 views
2

C#では、この文字列を正規表現に渡すため、ダブルエスケープに変換する必要があるファイル名があります。言い換えればダブルエスケープ文字列への変換

、私が持っている場合:

FileInfo file = new FileInfo(@"c:\windows\foo.txt"); 
string fileName = file.FullName; 

fileNameがある:c:\\\\windows\\\\foo.txt

しかし、私は、ファイル名に2つのリテラルのバックスラッシュ\\の配列を有するために、これを変換する必要があります。 ファイル名はまたはである必要があります。 この変換を行う簡単な方法はありますか?

答えて

0

この部分のためにregexでに頼ることなく、最も単純な:OPに基づいて

string fileName = file.FullName.Replace(@"\", @"\\\\"); 

が、私は本当にこの欲しいと思う:言われて、私はどのように見ることができない

string fileName = file.FullName.Replace(@"\", @"\\"); 

をそれを使用したいと思います。エスケープする必要はありません。もっとコードを投稿する必要がありますか?

+0

Ah、C#文字列にはReplaceメソッドがあります。 :)それはトリックを行います。 – Drakestar

+1

ああ、私は正規表現にその文字列を供給するためにこれが必要でした。バックスラッシュはエスケープする必要がありました。 – Drakestar

7

私はあなたがそれも脱出する方法をRegex.Escape

Regex.Escape(@"c:\test.txt") == @"C:\\Test\.txt" 

予告を探していると思います ''