可能是重复问题:
.NET - 不使用异常处理检查目录是否可访问
我正在使用Visual Studio 2010,.NET 3.5和C#制作一个小型文件浏览器,并且我有这个函数来检查目录是否可访问:
RealPath=@"c:\System Volume Information";
public bool IsAccessible()
{
//get directory info
DirectoryInfo realpath = new DirectoryInfo(RealPath);
try
{
//if GetDirectories works then is accessible
realpath.GetDirectories();
return true;
}
catch (Exception)
{
//if exception is not accesible
return false;
}
}
但是我认为在处理大目录时,尝试获取所有子目录来检查目录是否可访问可能会很慢。我正在使用这个函数来防止在没有光盘的情况下探索受保护的文件夹或 CD/DVD 驱动器时出现错误("设备未准备好"错误)。
有没有更好的方法(更快)来检查应用程序是否可以访问目录(最好在.NET 3.5中)?