【问题标题】:How to use treeView to list the Files within sub Directories without showing the root directory?如何使用 treeView 列出子目录中的文件而不显示根目录?
【发布时间】:2014-02-09 18:25:45
【问题描述】:

这段代码运行良好:

    private void Form1_Load(object sender, EventArgs e)
    {
       PopulateTree(@"C:\treeview", treeView1.Nodes.Add("I want to remove this node"));
    }
    public void PopulateTree(string dir, TreeNode node)
    {
        DirectoryInfo directory = new DirectoryInfo(dir);
        foreach (DirectoryInfo d in directory.GetDirectories())
        {
            TreeNode t = new TreeNode(d.Name);
            PopulateTree(d.FullName, t);
            node.Nodes.Add(t);
        }
        foreach (FileInfo f in directory.GetFiles())
        {
            TreeNode t = new TreeNode(f.Name);
            node.Nodes.Add(t);
        }
    }

但是,我不想在子目录列表的顶部显示主(=root)目录(=folder),我只想显示如图所示的子目录。

【问题讨论】:

    标签: c# winforms treeview


    【解决方案1】:

    试试这个:

    public void PopulateTree(string dir, TreeNode node)
    {
        DirectoryInfo directory = new DirectoryInfo(dir);
        foreach (DirectoryInfo d in directory.GetDirectories())
        {
            TreeNode t = new TreeNode(d.Name);
            if (node != null) node.Nodes.Add(t);
            else treeView1.Nodes.Add(t);
            PopulateTree(d.FullName, t);      
        }
        foreach (FileInfo f in directory.GetFiles())
        {
            TreeNode t = new TreeNode(f.Name);
            if (node != null) node.Nodes.Add(t);
            else treeView1.Nodes.Add(t);
        }
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
        PopulateTree(@"C:\treeview", null);
    }
    

    【讨论】:

      【解决方案2】:
        PopulateTree(@"C:\treeview", treeView1.Nodes);
      
      public void PopulateTree(string dir, TreeNodeCollection nodes)
      {
          DirectoryInfo directory = new DirectoryInfo(dir);
          foreach (DirectoryInfo d in directory.GetDirectories())
          {
              TreeNode t = new TreeNode(d.Name);
              nodes.Add(t);
              PopulateTree(d.FullName, t.Nodes);            
          }
          foreach (FileInfo f in directory.GetFiles())
          {
              TreeNode t = new TreeNode(f.Name);
              nodes.Add(t);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-06
        • 2023-03-03
        • 1970-01-01
        • 2012-05-21
        • 1970-01-01
        • 2014-10-30
        相关资源
        最近更新 更多