我需要更改路径
"\\\\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
注意:
该路径不是硬编码的。这将从数据源中检索。都是动态的。
答案 0 :(得分:4)
此代码也必须在不将“ \\”替换为“ \”的情况下工作
//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("\\","/");
答案 1 :(得分:2)
我建议使用现有的帮助器类,但这也可以:
string fileString = "\\NDWERE8669\\200002679\\xyz\\xyz_1\\645d8fa96d254a2ea188a7a9658f5632\\test.pdf";
if (File.Exists(filestring))
filestring = filestring.Replace("\\\\", "\\");
答案 2 :(得分:0)
尝试一下,@使字符串忽略转义字符。
File.Exists(@"\NDWERE8669\200002679\xyz\xyz_1\645d8fa96d254a2ea188a7a9658f5632\test.pdf")
答案 3 :(得分:0)
怎么样?
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 */
答案 4 :(得分:0)
不使用字符串替换(和最安全的IMHO)的解决方案之一是使用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){...}