C# - 在所有可能的文件夹中查找文件,然后打开该文件

时间:2013-11-13 13:09:53

标签: c# file-io

我希望我的应用程序在整个计算机中搜索特定文件,然后打开它。 我试过了:

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。

1 个答案:

答案 0 :(得分:3)

您的DirectoryInfo.GetFiles方法会抛出UnauthorizedAccessException异常,因为您无法访问此隐藏目录。

更正:捕捉异常


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

有关完整示例,请参阅How to recursively list all the files in a directory in C#?