2015-02-10 116 views
-4

有没有办法来验证有效的路径/文件名?文件名是已知的,因为它被提供给客户。不知道.exe和其他文件放置在哪里。有没有验证有效路径/文件名的方法?

+0

_你想避免哪一步?整个方法还是只有一部分?可能是重复的:http://stackoverflow.com/questions/6198392/check-whether-a-path-is-valid – 2015-02-10 14:53:24

+1

你是什么意思的“正确”?你的意思是它*可能是一个有效的文件名,即它不包含非法字符?或者你的意思是文件确实存在(要记住,这个文件可能随时改变,所以这不会是正确的方法)? – 2015-02-10 14:54:26

+0

我的意思是路径可能不正确。此代码将被其他人使用,并且所需的文件可能位于我的计算机上的不同位置。 – ttom 2015-02-10 14:56:29

回答

1

要检查文件是否存在于指定的路径,使用System.IO.File.Exists(string path)

if (File.Exists(pathFileName)) 
{ 
    ... 
} 
else 
{ 
    ... 
} 

要检查路径或文件名是否有效(即不包含非法字符),使用System.IO.Path.GetInvalidPathChars()System.IO.Path.GetInvalidFileNameChars()

if (Path.GetInvalidFileNameChars().Any(c => pathFileName.Contains(c))) 
{ 
    ... 
} 
0

由于您试图验证路径是否存在,您应该可以使用System.IO

var path = "..."; 
if(Directory.Exist(path)) 
{ 
    // Valid/Exist 
} 

您也可以通过简单地使用File.Exist来验证文件。信息可以在here找到。

path参数可以指定相对或绝对路径 信息。相对路径信息被解释为相对于当前工作目录的 。在检查目录 是否存在之前,从路径参数的末尾 中删除尾部空格。路径参数不区分大小写。如果 对目录的最小只读权限不存在,则Exists方法 将返回false。如果在尝试确定指定文件是否存在时发生任何错误 ,则Exists方法返回false。如果发生异常,例如传递文件名为 无效字符或字符过多,磁盘失败或缺失, 或调用方无权读取文件,则可能发生此问题 。

相关问题