克服 Directory.GetFiles 中的未经授权访问异常
当使用 Directory.GetFiles() 递归搜索目录树中的文件时,当程序尝试访问没有足够权限的文件夹时,可能会遇到 UnauthorizedAccessException。此异常会过早中止操作。
要解决此问题,建议通过单独探测每个目录来采用更受控制的方法。下面的代码演示了这种技术:
private static void AddFiles(string path, IList<string> files) { try { Directory.GetFiles(path) .ToList() .ForEach(file => files.Add(file)); Directory.GetDirectories(path) .ToList() .ForEach(dir => AddFiles(dir, files)); } catch (UnauthorizedAccessException ex) { // Handle inaccessible directory (e.g., move on to the next one) } }
在这种方法中,AddFiles() 迭代路径中的所有文件和子目录。当它遇到无法访问的目录时,它只是跳过它并继续访问剩余的目录。通过这样做,程序可以继续其文件搜索,而不会由于授权问题而突然终止。
以上是使用 Directory.GetFiles() 时如何处理 UnauthorizedAccessException?的详细内容。更多信息请关注PHP中文网其他相关文章!