【问题标题】:An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dllmscorlib.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常
【发布时间】:2013-06-14 23:09:19
【问题描述】:

我正在尝试在 c# 中创建一个简单的 windows-explorer,例如 treeview,但是我在运行时收到此错误:

在 mscorlib.dll 中发生了“System.UnauthorizedAccessException”类型的未处理异常

附加信息:对路径“c:\$Recycle.Bin\S-1-5-18”的访问被拒绝。

我使用的代码与 Microsoft 来自 MS Tree View example 的此示例完全相同。

为什么会出现这个错误?

【问题讨论】:

    标签: c#


    【解决方案1】:

    错误很明显;您的代码正试图进入您无权访问的目录 - c:\$Recycle.Bin\S-1-5-18 目录(顺便说一下,它是本地系统的 SID)。不幸的是,这个 MSDN 示例假定您的程序可以访问每个目录,这不太现实。

    您可以更改您的代码以优雅地处理它无权访问的目录(捕获异常并继续执行)。例如:如果我们改变这行代码示例:

    subSubDirs = subDir.GetDirectories();
    

    我怀疑你在哪里得到了这个错误:

    try
    {
        subSubDirs = subDir.GetDirectories();
    }
    catch (System.UnauthorizedAccessException)
    {
        subSubDirs = new DirectoryInfo[0];
    }
    

    这将优雅地处理无法获取特定文件夹的子文件夹的问题。这使用try-catch 语句。我们尝试获取文件夹中的目录,但是如果出现 System.UnauthorizedAccessException 异常,捕获它并假设没有子目录。

    这是处理错误的基础,您可能会在应用程序中遇到其他类似的错误,比如因为用户单击了文件夹,而现在它正试图显示目录的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多