C# 为什么文档和设置文件夹出现拒绝访问错误?

C# 为什么文档和设置文件夹出现拒绝访问错误?,c#,.net,windows-7,file-io,directory,C#,.net,Windows 7,File Io,Directory,我正在写一个程序,可以得到所有的目录和子目录。我正在使用以下代码: DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo drive in drives) { string[] directories = Directory.GetDirectories(drive.Name, "*", SearchOption.AllDirectories); } 但我收到一个异常,声明“对路径“C:\Documents and

我正在写一个程序,可以得到所有的目录和子目录。我正在使用以下代码:

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()
要拉一个似乎不存在的目录?

这个目录就是所谓的a,应该指向c:\users

从MSDN文档中:

这些连接点可按如下方式识别:

它们设置了文件属性重分析点、文件属性隐藏点和文件属性系统文件属性

他们还将访问控制列表(ACL)设置为拒绝所有人的读取权限


调用特定路径的应用程序如果具有所需的权限,则可以遍历这些连接点。但是,尝试枚举连接点的内容将导致失败。

我不知道如何解决,但我可以告诉您WinXP使用了该路径。为访问该文件夹而编写的旧程序与Win7不兼容,因此Microsoft会将其重定向到用户文件夹


如果我真的开始->运行
c:\Documents and Settings
我也会得到
访问被拒绝
错误。所以有些事情是存在的

在寻找答案一段时间后,我决定自己编写代码

我在这里分享的是基本思想,而不是完整的代码——把重要的部分用在代码中实现

为我工作

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;
    }

这个答案似乎不正确,;