首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.UnauthorizedAccessException类型的未处理异常发生在mscorlib.dll中

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

Stack Overflow用户
提问于 2013-06-14 23:09:19
回答 1查看 15.8K关注 0票数 4

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

System.UnauthorizedAccessException类型的未处理异常发生在mscorlib.dll中 其他信息:路径'c:\$Recycle.Bin\S-1-5-18‘的访问被拒绝。

我使用的代码与微软来自MS树视图示例的示例完全相同。

我为什么要犯这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-14 23:19:12

错误非常清楚;您的代码试图进入一个您无法访问的目录- c:\$Recycle.Bin\S-1-5-18目录(顺便说一句,它是本地系统的SID )。不幸的是,这个MSDN示例假设您的程序可以访问每个目录,这是不现实的。

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

代码语言:javascript
复制
subSubDirs = subDir.GetDirectories();

这就是我怀疑你所犯错误的地方:

代码语言:javascript
复制
try
{
    subSubDirs = subDir.GetDirectories();
}
catch (System.UnauthorizedAccessException)
{
    subSubDirs = new DirectoryInfo[0];
}

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17118537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档