我想验证文件名及其完整路径.我尝试了下面的某些正则表达式,但没有一个正常工作.
^(?:[\w]\:|\\)(\\[a-z_\-\s0-9\.]+)+\.(txt|gif|pdf|doc|docx|xls|xlsx)$
and
^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$
etc...
Run Code Online (Sandbox Code Playgroud)
我的要求如下所述:让我们说如果文件名是"c:\ Demo.txt"那么它应该检查每个可能性,就像不应该包含双斜线(c:\\Demo\\demo.text)没有像(c::\Demo\demo.text)那样的额外冒号.应该接受像(\\staging\servers)和其他验证的UNC文件.请帮忙.我真的被困在这里了.
为什么不使用 File 类?永远使用它!
File f = null;
string sPathToTest = "C:\Test.txt";
try{
f = new File(sPathToTest );
}catch(Exception e){
Console.WriteLine(string.Format("The file \"{0}\" is not a valid path, Error : {1}.", sPathToTest , e.Message);
}
Run Code Online (Sandbox Code Playgroud)
MSDN: http://msdn.microsoft.com/en-gb/library/system.io.file%28v=vs.80%29.aspx
也许您只是在寻找 File.Exists ( http://msdn.microsoft.com/en-gb/library/system.io.file.exists%28v=vs.80%29.aspx )
另请查看 Path 类 ( http://msdn.microsoft.com/en-us/library/system.io.path.aspx )
GetAbsolutePath 可能是获得您想要的东西的一种方法!(http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx)
string sPathToTest = "C:\Test.txt";
string sAbsolutePath = "";
try{
sAbsolutePath = Path.GetAbsolutePath(sPathToTest);
if(!string.IsNullOrEmpty(sAbsolutePath)){
Console.WriteLine("Path valid");
}else{
Console.WriteLine("Bad path");
}
}catch(Exception e){
Console.WriteLine(string.Format("The file \"{0}\" is not a valid path, Error : {1}.", sPathToTest , e.Message);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |