为什么我的Documents and Settings文件夹出现拒绝访问错误?
我正在编写一个获取所有目录和子目录的程序。 我正在使用以下代码:
DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo drive in drives) { string[] directories = Directory.GetDirectories(drive.Name, "*", SearchOption.AllDirectories); }
但我得到一个例外,说明“访问路径’C: Documents and Settings ’被拒绝。”
我正在使用Windows 7,我在资源管理器中看不到C: Documents and Settings 文件夹。 我启用了“显示隐藏文件和文件夹”,甚至尝试直接键入路径,但它出现以下错误:“C: Documents and Settings无法访问。访问被拒绝。”
为什么Directory.GetDirectories()
拉出一个似乎不存在的目录?
这个目录就是所谓的连接点 ,它应该指向c: users。
从MSDN文档:
这些交接点可以识别如下:
它们具有FILE_ATTRIBUTE_REPARSE_POINT,FILE_ATTRIBUTE_HIDDEN和FILE_ATTRIBUTE_SYSTEM文件属性集。
他们还将访问控制列表(ACL)设置为拒绝对每个人的读取访问权限。
如果具有所需权限,则调用特定路径的应用程序可以遍历这些连接点。 但是,枚举连接点内容的尝试将导致失败。
我不知道如何解决,但我可以告诉你,WinXP使用了这条路径。 期望能够访问该文件夹的旧程序不会与Win7兼容,因此Microsoft将其重定向到您的Users文件夹。
如果我执行开始 – >运行c:Documents and Settings
我也会收到Access is Denied
错误。 那里有东西。
在寻找答案一段时间之后 – 我决定自己编写代码。
我在这里分享基本的想法,而不是完整的代码 – 采取重要的部分,并使用它在您的代码中实现它。
为我工作。
上述就是C#学习教程:为什么我的Documents and Settings文件夹出现拒绝访问错误?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public void directoryCrawl(string startFolder) { try { System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder); /* here you can add "dir" to some kind of list of your choice. */ foreach (System.IO.DirectoryInfo directory in dir.GetDirectories()) { try { directoryCrawl(directory.FullName); } catch { Console.Writeline("Access denied to: "" + directory.FullName + ""."); } } } catch { if (!String.IsNullOrEmpty(startFolder)) { Console.Writeline("Access denied to: "" + startFolder + ""."); } } return; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958581.html