在文件夹中搜索文件而不获取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);
}

在文件夹中搜索文件而不获取UnauthorizedAccessException

除了当前的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",从而使您陷入另一个兔子洞:-)