我一直在尝试在"我的文档"中的所有可能目录中查找文件,但它正在抛出" 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);
}
答案 0 :(得分:0)
除了您当前的System.UnauthorizedAccessException
之外,还有许多问题需要解决,例如“重新分析点”(硬链接,交接点,符号链接等)。
在进一步讨论之前,你真的应该阅读这篇文章:
它没有涵盖我脑海中浮现的所有问题,但文章中给出的解决方案是朝着正确方向迈出的非常好的一步,可以避免许多“未知数”。
编辑://
我提到了重新分析点,因为在Windows 7,8中使用它们(AFAIK)等构成SpecialFolder
对象。
例如:
"C:\Users\UserName\My Documents"
是NTFS联结,指向"C:\Users\UserName\Documents"
。
我认为重要的是要指出这一点,因为没有明确的规则可以阻止我在"C:\Users\UserName\My Documents"
上设置ACL以禁止任何人,但管理员通过交汇点访问"C:\Users\UserName\Documents"
/符号链接,因此送你另一个兔子洞: - )