私はネットを検索して検索しましたが、この問題の適切な解決策を見つけることができませんでした。
ここに私のコード:
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
これを解決する方法についてのアイデアを事前に感謝します。