我正在尝试创建一个简单的windows-explorer,比如c#中的treeview,但是我在运行时得到了这个错误:
System.UnauthorizedAccessException类型的未处理异常发生在mscorlib.dll中 其他信息:路径'c:\$Recycle.Bin\S-1-5-18‘的访问被拒绝。
我使用的代码与微软来自MS树视图示例的示例完全相同。
我为什么要犯这个错误?
发布于 2013-06-14 23:19:12
错误非常清楚;您的代码试图进入一个您无法访问的目录- 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异常,则捕获它并假定没有子目录。
这是处理错误的基础,您可能会在应用程序中获得类似的其他错误,例如,因为用户单击了文件夹,现在它试图显示目录的内容。
https://stackoverflow.com/questions/17118537
复制相似问题