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异常,因为您无权访问此隐藏目录。

更正:捕获异常


更新:正如评论所说,您可以在一次GetFiles调用中获取所有文件,因此捕获异常无济于事。稍微修改您的代码以手动获取目录列表,以便您可以捕获并处理您无权访问的特定目录的异常。

请参阅如何在 C# 中递归列出目录中的所有文件?一个完整的例子。

于 2013-11-13T13:16:04.607 回答