转换为双转义字符串

时间:2009-06-01 02:41:04

标签: c# string

在C#中,我有一个需要转换为双重转义的文件名(因为我将此字符串提供给正则表达式)。

换句话说,如果我有:

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

fileName是:c:\\\\windows\\\\foo.txt

但我需要将其转换为在fileName中包含两个文字反斜杠\\的序列。 fileName必须是@"c:\\\\windows\\\\foo.txt""c:\\\\\\\\windows\\\\\\\\foo.txt"。 有没有简单的方法进行转换?

2 个答案:

答案 0 :(得分:8)

我认为你正在寻找Regex.Escape

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

注意它是如何逃脱'。'

答案 1 :(得分:0)

最简单,不使用正则表达式:

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

基于OP,但我认为你真的想要这个:

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

话虽如此,我看不出你想如何使用它...它根本不需要逃避...也许你应该发布更多的代码?