在使用Mono的MacOS上,当我使用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 { }
}
编辑: 我想这个代码会在第一个例外退出吗?
答案 0 :(得分:1)
如果你在Directory.GetFiles()
周围放置一个try / catch,你应该能够继续使用下一个目录,如果它失败了。你甚至可以这样包装:
private string[] SafeGetFilesForDirectory(string directory)
{
try
{
return Directory.GetFiles(directory);
}
catch (UnauthorizedAccessException)
{
return new string[0];
}
}