0

アプリケーションで特定のファイルをコンピュータ全体から検索して開きたいと考えています。私は試した:

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

エラーが発生しました: C:\$Recycle.Bin\S-1-5-18 にアクセスできません。

4

1 に答える 1

3

この隠しディレクトリにアクセスできないため、メソッドは例外をスローDirectoryInfo.GetFilesします。UnauthorizedAccessException

訂正:例外をキャッチします


更新:コメントが言うように、すべてのファイルを1回のGetFiles呼び出しで取得しているため、例外をキャッチしても役に立ちません。ディレクトリのリストを手動で取得するようにコードを少し変更して、権限のない特定のディレクトリの例外をキャッチして処理できるようにします。

C# でディレクトリ内のすべてのファイルを再帰的に一覧表示する方法を参照してください。完全な例については。

于 2013-11-13T13:16:04.607 に答える