Преобразование в строку с двойным экранированием - PullRequest
2 голосов
/ 01 июня 2009

В C # у меня есть имя файла, которое необходимо преобразовать для двойного экранирования (потому что я передаю эту строку в регулярное выражение).

Другими словами, если у меня есть:

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

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

Но мне нужно преобразовать это, чтобы в файле name были последовательности из двух буквенных обратных косых черт. имя_файла должно быть @"c:\\\\windows\\\\foo.txt" или "c:\\\\\\\\windows\\\\\\\\foo.txt". Есть ли простой способ сделать это преобразование?

Ответы [ 2 ]

8 голосов
/ 01 июня 2009

Я думаю, что вы ищете Regex.Escape

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

обратите внимание, как он также избегает '.'

0 голосов
/ 01 июня 2009

самое простое, не прибегая к регулярным выражениям для этой части:

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

на основе ОП, но я думаю, что вы действительно хотите это:

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

При этом я не могу понять, как вы хотите его использовать ... ему вообще не нужно убегать ... может быть, вам следует опубликовать больше кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...