C# 排除在树视图中显示某些文件夹和子文件夹

C# 排除在树视图中显示某些文件夹和子文件夹,c#,C#,在我的一个驱动器上,我有一个文件夹结构 d:\ 我想在我的treeview中展示以下内容 d:\ i、 e仅显示“代码”和“数据库”的文件夹和子文件夹 下面是加载treeview的代码 folderLst={“123”,“234”} 非常感谢您的帮助您有以下代码 foreach (DirectoryInfo subDir in subDirs) { aNode = new TreeNode(subDir.Name, 0, 0); aNode.Tag

在我的一个驱动器上,我有一个文件夹结构

d:\

我想在我的treeview中展示以下内容

d:\

i、 e仅显示“代码”和“数据库”的文件夹和子文件夹

下面是加载treeview的代码

folderLst={“123”,“234”}


非常感谢您的帮助

您有以下代码

    foreach (DirectoryInfo subDir in subDirs)
    {
        aNode = new TreeNode(subDir.Name, 0, 0);
        aNode.Tag = subDir;

        subSubDirs = subDir.GetDirectories();
        if (subSubDirs.Length != 0)
        {
            GetDirectories(subSubDirs, aNode);
        }

        nodeToAddTo.Nodes.Add(aNode);
    }
您可以将其修改为不添加所需的文件夹

    foreach (DirectoryInfo subDir in subDirs)
    {
        if(subDir.Name.Contains("Code") || subDir.Name.Contains("Database"))
        {
            aNode = new TreeNode(subDir.Name, 0, 0);
            aNode.Tag = subDir;

            subSubDirs = subDir.GetDirectories();
            if (subSubDirs.Length != 0)
            {
                GetDirectories(subSubDirs, aNode);
            }

            nodeToAddTo.Nodes.Add(aNode);
        }
    }

Eric我尝试过这种方法,但树状视图只显示“代码”和“数据库”,但不显示子文件夹。您尝试过什么吗?怎么会失败呢?我试过了,但似乎什么都没用
   private void PopulateTreeView()
    {
        TreeNode rootNode;
        foreach (string f in folderLst)
        {

            DirectoryInfo info = new DirectoryInfo(@"d:\");
            if (info.Exists)
            {
                rootNode = new TreeNode(info.Name);
                rootNode.Tag = info;
                GetDirectories(info.GetDirectories(), rootNode);
                treeView1.Nodes.Add(rootNode);
            }
        }
    }


  private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo)
    {
        TreeNode aNode;
        DirectoryInfo[] subSubDirs;
        foreach (DirectoryInfo subDir in subDirs)
        {
            aNode = new TreeNode(subDir.Name, 0, 0);
            aNode.Tag = subDir;

            subSubDirs = subDir.GetDirectories();
            if (subSubDirs.Length != 0)
            {
                GetDirectories(subSubDirs, aNode);
            }

            nodeToAddTo.Nodes.Add(aNode);
        }
    }
    foreach (DirectoryInfo subDir in subDirs)
    {
        aNode = new TreeNode(subDir.Name, 0, 0);
        aNode.Tag = subDir;

        subSubDirs = subDir.GetDirectories();
        if (subSubDirs.Length != 0)
        {
            GetDirectories(subSubDirs, aNode);
        }

        nodeToAddTo.Nodes.Add(aNode);
    }
    foreach (DirectoryInfo subDir in subDirs)
    {
        if(subDir.Name.Contains("Code") || subDir.Name.Contains("Database"))
        {
            aNode = new TreeNode(subDir.Name, 0, 0);
            aNode.Tag = subDir;

            subSubDirs = subDir.GetDirectories();
            if (subSubDirs.Length != 0)
            {
                GetDirectories(subSubDirs, aNode);
            }

            nodeToAddTo.Nodes.Add(aNode);
        }
    }