首页 > 后端开发 > C++ > 使用 Directory.GetFiles() 时如何处理 UnauthorizedAccessException?

使用 Directory.GetFiles() 时如何处理 UnauthorizedAccessException?

Patricia Arquette
发布: 2025-01-07 15:02:40
原创
639 人浏览过

How to Handle UnauthorizedAccessException When Using Directory.GetFiles()?

克服 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板