繁体   English   中英

访问拒绝访问任何驱动器的系统文件夹,例如系统卷信息

[英]Access Denied on accessing the system folder of any drive like system volume information

我有以下递归代码来获取选定目录的所有文件夹和文件。 但是,当我选择一个驱动器时,例如E:\\\\ .. ,我收到一条错误消息

"Access denied in accessing E:\\system volume information"

是否可以绕过系统卷信息文件夹?

这是我正在使用的代码:

private static ArrayList GenerateFileList(string Dir)
{
    ArrayList fils = new ArrayList();
    bool Empty = true;

    foreach (string file in Directory.GetFiles(Dir)) // add each file in directory
    {
        fils.Add(file);
        Empty = false;
    }

    if (Empty)
    {
        if (Directory.GetDirectories(Dir).Length == 0)
            // if directory is completely empty, add it
        {
            fils.Add(Dir + @"/");
        }
    }

    foreach (string dirs in Directory.GetDirectories(Dir)) // recursive
    {
        foreach (object obj in GenerateFileList(dirs))
        {
            fils.Add(obj);
        }

    }
        return fils; // return file list
     }
private static ArrayList GenerateFileList(string Dir)
{
    ArrayList fils = new ArrayList();
    bool Empty = true;

    try
    {
        foreach (string file in Directory.GetFiles(Dir)) // add each file in directory
        {
            fils.Add(file);
            Empty = false;
        }
    }
    catch(UnauthorizedAccessException e)
    {
        // I believe that's the right exception to catch - compare with what you get
        return new ArrayList();
    }

        if (Empty)
        {
            if (Directory.GetDirectories(Dir).Length == 0)
                // if directory is completely empty, add it
            {
                fils.Add(Dir + @"/");
            }
        }

    foreach (string dirs in Directory.GetDirectories(Dir)) // recursive
    {
        foreach (object obj in GenerateFileList(dirs))
        {
            fils.Add(obj);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM