在使用Mono的MacOS上,当我使用 Directory.GetFiles() System.UnathorizedAcessException 它停止枚举。任何人都知道如何使它继续,或者使用不同的方法来枚举文件
Directory.GetFiles()
System.UnathorizedAcessException
编辑: 我自己写的方法,似乎很管用。
static void DirSearch(string sDir) { try { foreach (string d in Directory.GetDirectories(sDir)) { Console.WriteLine(d); foreach (string f in Directory.GetFiles(d, "*")) { Console.WriteLine(f); } DirSearch(d); } } catch { } }
编辑: 我想知道代码在第一个异常时会退出吗?
如果你在 Directory.GetFiles() ,如果下一个目录失败,您应该可以继续下一个目录。你甚至可以这样包装:
private string[] SafeGetFilesForDirectory(string directory) { try { return Directory.GetFiles(directory); } catch (UnauthorizedAccessException) { return new string[0]; } }