Как заменить двойной обратный слеш одним обратным слэшем из общего ресурса - PullRequest
0 голосов
/ 23 октября 2018

Мне нужно изменить путь с

"\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf"

на

"\\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf"

Если я отмечу

File.Exists("\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf") // returns false

Примечание:

путь не жестко закодирован.это будет получено из источника данных.все динамично.

Ответы [ 5 ]

0 голосов
/ 26 октября 2018

Этот код также должен работать без замены "\\" на "\"

//is true path
"\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf"

Вы также можете использовать

string fileString = "\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf";
            fileString=fileString.Replace("\\\\","//").Replace("\\","/");
0 голосов
/ 23 октября 2018

Одно из решений без замены строки (и самое безопасное ИМХО) заключается в использовании метода Path.GetFullPath, который нормализует путь:

var normalizedPath = Path.GetFullPath("\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf");
//normalizedPath will be equal to "\\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf"
File.Exists(normalizedPath){...}
0 голосов
/ 23 октября 2018

Я бы рекомендовал использовать существующие вспомогательные классы, но это работает также:

string fileString = "\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf";
if (File.Exists(filestring))
    filestring = filestring.Replace("\\\\", "\\");
0 голосов
/ 23 октября 2018

Как насчет этого?

string strRegex = @"(\\+)";
Regex myRegex = new Regex(strRegex, RegexOptions.Singleline);
string strTargetString = 
@"\\\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf";
string strReplace = @"\";

if (File.Exists(@"\" + myRegex.Replace(strTargetString, strReplace))) { /* do somthing */
0 голосов
/ 23 октября 2018

Попробуйте, @ заставляет строку игнорировать escape-символы.

   File.Exists(@"\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...