首页 > 后端开发 > C++ > 使用'Directory.GetFiles”时如何处理'UnauthorizedAccessException”错误?

使用'Directory.GetFiles”时如何处理'UnauthorizedAccessException”错误?

Mary-Kate Olsen
发布: 2025-01-07 15:21:44
原创
874 人浏览过

How to Handle `UnauthorizedAccessException` Errors When Using `Directory.GetFiles`?

解决Directory.GetFiles抛出的UnauthorizedAccessException异常

使用Directory.GetFiles获取文件路径时,如果程序缺乏对指定目录中特定文件夹的访问权限,则可能会遇到UnauthorizedAccessException异常。此异常发生在方法已尝试访问不可访问的文件夹之后,导致操作过早终止。

为了解决这个问题,建议采用迭代方法,而不是一次性尝试访问整个目录树。以下代码示例演示了如何安全地探测目录并收集文件:

<code class="language-csharp">private static void AddFiles(string path, IList<string> files)
{
    try
    {
        foreach (string file in Directory.GetFiles(path))
        {
            files.Add(file);
        }

        foreach (string subdirectory in Directory.GetDirectories(path))
        {
            AddFiles(subdirectory, files);
        }
    }
    catch (UnauthorizedAccessException ex)
    {
        // 以优雅的方式处理访问被拒绝的异常。
        // 可以记录问题或继续处理下一个目录。
        // 例如:Console.WriteLine($"Access denied to directory: {path}, Exception: {ex.Message}");
    }
}</code>
登录后复制

通过逐个探测目录,可以避免在对特定文件夹的访问被拒绝时终止整个操作。这允许程序继续处理具有访问权限的目录中的文件。 此方法比原示例更清晰地处理Directory.GetFiles的结果,避免了不必要的ToList()ForEach()调用,提高了代码效率和可读性。

以上是使用'Directory.GetFiles”时如何处理'UnauthorizedAccessException”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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