C# 检查文件目标是否有效

10
有没有标准函数可以检查指定目录是否有效?
我之所以这样问,是因为我从用户那里收到了一个绝对目录字符串和文件名,并希望对其进行验证以确保其有效。
5个回答

29

对于一个文件

File.Exists(string)

对于一个目录

Directory.Exists(string)

注意: 如果您正在重复使用一个对象,应考虑使用FileInfo类而不是静态File类。 File类的静态方法每次都会进行可能不必要的安全检查。
FileInfo - DirectoryInfo - File - Directory

 FileInfo fi = new FileInfo(fName);
 if (fi.Exists)
    //Do stuff

或者

DirectoryInfo di = new DirectoryInfo(fName);
 if (di.Exists)
    //Do stuff

9
if(System.IO.File.Exists(fileOrDirectoryPath))
{
    //do stuff
}

这应该能解决问题!

2

如果不能创建新目录,您可以检查其是否存在。

看起来您还可以使用Path.GetInvalidPathChars来检查无效字符。


2

您还需要考虑到,仅仅是一个有效的路径本身并不完全有效。如果用户提供了C:\windows\System32,或者是光驱,操作系统在尝试写入时可能会抛出异常。


0

前面的答案在检查给定文件或目录是否存在方面是正确的。Path类还包含许多有用的函数,可用于验证或操作路径的各个组件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接