2012-08-09 66 views
2

我在这里有一个应接受文件路径的文本框。我应该如何验证(通过单击按钮)给定路径文件是否存在?检查给出的路径字符串是否无效

例如,“C:MyDocs \ sample.txt的”应该是无效的,因为它实际上不是在本地驱动器上现有的和后“C:”有没有“\” ..

我已经尝试使用这个:

FileInfo fi = new FileInfo(fName); 
if (fi.Exists) 
    //do something 

但它不能满足我的问题..任何人都可以建议?

+0

'fi.Exists'会评估为false,那么实际上并没有什么作用? – V4Vendetta 2012-08-09 09:24:41

+0

你需要突出你的问题因为如果aspnet,你将如何映射一个文件在客户端机器上有效,而不是在你的服务器上执行这些检查? :) – V4Vendetta 2012-08-09 09:30:12

回答

3

使用Uri.IsWellFormedUriString(path, UriKind.Absolute);检查路径是否有效(旁边如果该文件存在)

这里阅读乌里验证: http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx

样品:

bool isValid = Uri.IsWellFormedUriString(fName, UriKind.Absolute) && 
       File.Exists(fName); 

如果结果是真实的,你可以肯定地知道用户提供的文件格式是有效的,文件存在于文件系统中。

+0

它在我的表单的第一次加载期间确实工作..但是,当我点击下一步,然后再次回到该页面,问题返回.. – CMA 2012-08-09 10:22:30

+0

你作为结果得到什么? – Tamir 2012-08-09 10:23:30

5
if(!File.Exists(filename)) 
{ 
// file does not exist or path is invalid 
} 
相关问题