在文件夹中搜索文件而不获取UnauthorizedAccessException
本文关键字:获取 UnauthorizedAccessException 文件 文件夹 搜索 | 更新日期: 2023-09-27 18:29:55
我一直试图在"我的文档"中的所有可能目录中查找文件,但由于"我的音乐"文件夹,它引发了"System.UnauthorizedAccessException"异常。
我想也许列出"我的文档"中的所有文件夹,然后获得"我的音乐"的路径并将其从搜索中排除会解决问题,但它失败了。。。
所以现在我不知道如何在"我的文档"中的所有文件夹中找到一个特定的".ini"文件而不出现异常,有人能帮我吗?:)
我使用的代码:
DirectoryInfo dir = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
foreach(FileInfo file in dir.GetFiles("*.ini", SearchOption.AllDirectories))
{
listBox1.Items.Add(file.Name);
}
除了当前的System.UnauthorizedAccessException
,还有许多问题需要处理,例如"重分析点"(硬链接、连接点、符号链接等)。
你真的应该在继续之前阅读这篇文章:
文件夹递归
它并没有涵盖我脑海中出现的所有问题,但文章中给出的解决方案是朝着正确方向迈出的一大步,可以避免很多"未知"。
编辑://
我提到重分析点是因为它们在Windows 7、8?中使用(AFAIK)?,以构成CCD_ 2对象。
例如:
"C:'Users'UserName'My Documents"
是指向"C:'Users'UserName'Documents"
的NTFS连接。
我觉得指出这一点很重要,因为没有明确的规则可以阻止我将"C:'Users'UserName'My Documents"
上的ACL设置为禁止除管理员以外的任何人通过连接/符号链接访问"C:'Users'UserName'Documents"
,从而使您陷入另一个兔子洞:-)