Мне нужно изменить путь от
"\\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf"
в
"\NDWERE8669200002679xyzxyz_1645d8fa96d254a2ea188a7a9658f5632 est.pdf"
Если я проверю
File.Exists("\\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf") // returns false
Замечания:
путь не является жестко заданным. это будет извлекаться из источника данных. его все динамическое.
Всего 5 ответов
Этот код также должен работать без замены «\» на «»
//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("\","/");
Я бы рекомендовал использовать существующие вспомогательные классы, но это также работает:
string fileString = "\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf";
if (File.Exists(filestring))
filestring = filestring.Replace("\\", "\");
Попробуйте это, @ заставляет строку игнорировать escape-символы.
File.Exists(@"NDWERE8669200002679xyzxyz_1645d8fa96d254a2ea188a7a9658f5632 est.pdf")
Как насчет этого?
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 */
Одним из решений без замены строк (и безопасным IMHO) является использование метода Path.GetFullPath
который будет нормализовать путь:
var normalizedPath = Path.GetFullPath("\\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf");
//normalizedPath will be equal to "\NDWERE8669200002679xyzxyz_1645d8fa96d254a2ea188a7a9658f5632 est.pdf"
File.Exists(normalizedPath){...}