4

このコードを使用して、すべてのドライブのすべてのディレクトリを検索し、すべての .txt ファイルを検索しています。

public List<string> Search()
{
    var files = new List<string>();
    foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true))
    {
        files.AddRange(Directory.GetFiles(d.RootDirectory.FullName, "*.txt", SearchOption.AllDirectories));
     }
     return files;
}

しかし、実行中にこのエラーが発生しています: ここに画像の説明を入力

それを解決する方法は?

ありがとうございました。

4

2 に答える 2

0

ここでの問題は、ファイルにアクセスするために制御できないファイルがあることです。したがって、使用する必要がありますtry{ } catch{ }。しかし、ファイルシステムディレクトリ全体を一度に処理している間は、これを処理できないと思います。そのため、最初にすべてのディレクトリのリストを取得し、その種類の例外を処理できる特定のディレクトリ ファイルを処理しているときに、各ディレクトリを一度に処理する必要があります。

これを確認してください:

無許可アクセス例外-解決できない-ディレクトリ-getfiles-失敗

于 2013-07-12T10:53:50.980 に答える