Я искал и искал в сети, но не смог найти хорошего решения этой проблемы.
Вот мой код:
protected bool isFileValid(FileSystemInfo ifo)
{
if (!ifo.Exists || ifo.Name.StartsWith("$") || ifo.Name.Equals("System Volume Information"))
return false;
if(ifo is DirectoryInfo){
try
{
((DirectoryInfo)ifo).GetFileSystemInfos();
}
catch (Exception e) { LogUtil.Debug("Exception in isFileValid" + e.Message); return false; }
}
return true;
}
Есть ли способ проверить, могу ли я получить доступ к каталогу, кроме как попытаться поймать исключение? Проблема с этим подходом заключается в том, что он становится очень медленным, если есть много каталогов, к которым я не могу получить доступ.
Под "доступом к Справочнику" я подразумеваю вызов GetFileSystemInfos()
без исключения. isFileValid
вызывается моим приложением для каждого FileSystemInfo
, чтобы определить, доступен ли он описанным мной способом.
Заранее благодарим за любые идеи, как решить эту проблему.