我希望我的应用程序在整个计算机中搜索特定文件,然后打开它。 我试过了:
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。
答案 0 :(得分:3)
您的DirectoryInfo.GetFiles
方法会抛出UnauthorizedAccessException
异常,因为您无法访问此隐藏目录。
更正:捕捉异常。
更新:正如评论所说,您在一次GetFiles
调用中获取所有文件,因此捕获异常将无济于事。稍微修改您的代码以手动获取目录列表,这样您就可以捕获并处理您没有权限的特定目录的异常。
有关完整示例,请参阅How to recursively list all the files in a directory in C#?。