繁体   English   中英

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

[英]An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll

我正在尝试在c#中创建一个像treeview这样的简单windows-explorer,但是我在运行时遇到了这个错误:

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

附加信息:拒绝访问路径'c:\\ $ Recycle.Bin \\ S-1-5-18'。

我正在使用的代码与Microsoft的MS Tree View示例中的示例完全相同。

为什么我收到此错误?

错误很明显; 您的代码正试图进入您无权访问的目录--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异常,请捕获它并假设没有子目录。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM