C# 4.0 扫描目录时发生UnauthorizedAccessException';用户\文档\我的音乐'; 问题:为什么扫描用户的“我的文档”文件夹时会出现此错误,而扫描“我的音乐/我的图片/我的视频”目录时却不会出现此错误 次要,不太重要的问题:有没有一种方法可以避免这种情况,而无需专门筛选这些文件夹,或使用try/catch块
我更喜欢教我如何钓鱼的答案,而不仅仅是给我鱼。就在这一点上,我不确定我需要寻找到哪里来具体回答这个问题。我已经阅读了有关和的文档,花了一周的时间寻找为什么我可以在“用户\我的音乐”而不是“用户\文档\我的音乐”(链接)上设置DirectoryInfo,我只想在学习更多信息的不同方向上享受一点提升 我捕获在尝试Directory.GetFiles('path',“*”,SearchOption.AllDirectories)时最初抛出的初始“UnauthorizedAccessException”,其中path是用户的“我的文档”。要处理异常,我知道我需要手动遍历目录。从子目录返回文件 初始GetFiles函数的代码:C# 4.0 扫描目录时发生UnauthorizedAccessException';用户\文档\我的音乐'; 问题:为什么扫描用户的“我的文档”文件夹时会出现此错误,而扫描“我的音乐/我的图片/我的视频”目录时却不会出现此错误 次要,不太重要的问题:有没有一种方法可以避免这种情况,而无需专门筛选这些文件夹,或使用try/catch块,c#-4.0,directory,C# 4.0,Directory,我更喜欢教我如何钓鱼的答案,而不仅仅是给我鱼。就在这一点上,我不确定我需要寻找到哪里来具体回答这个问题。我已经阅读了有关和的文档,花了一周的时间寻找为什么我可以在“用户\我的音乐”而不是“用户\文档\我的音乐”(链接)上设置DirectoryInfo,我只想在学习更多信息的不同方向上享受一点提升 我捕获在尝试Directory.GetFiles('path',“*”,SearchOption.AllDirectories)时最初抛出的初始“UnauthorizedAccessException”
publicstaticstring[]GetFiles(字符串路径)
{
字符串[]文件;
尝试
{
files=Directory.GetFiles(路径“*”,SearchOption.AllDirectories);
}
捕获(未经授权的访问例外)
{files=WalkDirectory(path);}
归还文件;
}
公共静态字符串[]目录(字符串路径)
{
列表文件=新列表();
DirectoryInfo dir=新的DirectoryInfo(路径);
foreach(dir.GetDirectories()中的DirectoryInfo子目录)
{
尝试
{
files.AddRange(WalkDirectory(subDir.FullName));
}
捕获(未经授权的访问例外)
{
//已列出完整的漫游失败目录
掷骰子;
}
}
foreach(dir.GetFiles()中的FileInfo文件)
{
files.Add(file.FullName);
}
}
在代码尝试遍历隐藏文件夹(我的音乐、图片或视频)之前,这一切都是完美的。无论我如何尝试重新编码以遍历隐藏文件,我都会不断收到UnauthorizedAccessException
我完全理解我将围绕这一点编写代码。我想知道的主要是,为什么异常会发生在用户文件夹下
我的假设是,文件夹是指向另一个目录的符号链接,因为我可以创建路径?:\users directory\user\My(音乐、图片或视频),然后代码遍历这些目录而不会出现任何问题。只有在从“用户”“我的文档”中设置目录文件后尝试扫描目录文件时,才会发生这种情况
- OS:Windows7
- 用户权限:管理员
- 应用程序提升为以管理员身份运行