如何使用TreeView的子目录中列出的文件没有显示的根目录? [英] How to use treeView to list the Files within sub Directories without showing the root directory?

查看:602
本文介绍了如何使用TreeView的子目录中列出的文件没有显示的根目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码工作正常:

 私人无效Form1_Load的(对象发件人,EventArgs五)
{
PopulateTree(@C:\treeview,treeView1.Nodes.Add(我想删除这个节点));
}
公共无效PopulateTree(字符串目录,树节点节点)
{
的DirectoryInfo目录=新DirectoryInfo的(DIR);
的foreach(在directory.GetDirectories DirectoryInfo的D())
{
树节点T =新的TreeNode(d.Name);
PopulateTree(d.FullName,T);
node.Nodes.Add(T);
}
的foreach(FileInfo的f由于directory.GetFiles())
{
树节点T =新的TreeNode(f.Name);
node.Nodes.Add(T);
}
}



但是,我不想显示主( =在子目录的列表的顶部根)目录(=文件夹),我只是想显示在图中所示下来子directoriesas。


解决方案

  PopulateTree(@C:\treeview,treeView1.Nodes); 

公共无效PopulateTree(字符串目录,TreeNodeCollection节点)
{
的DirectoryInfo目录=新DirectoryInfo的(DIR);
的foreach(在directory.GetDirectories DirectoryInfo的D())
{
树节点T =新的TreeNode(d.Name);
nodes.Add(T);
PopulateTree(d.FullName,t.Nodes);
}
的foreach(FileInfo的f由于directory.GetFiles())
{
树节点T =新的TreeNode(f.Name);
nodes.Add(T);
}
}


This code works fine:

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

BUT, I do not want to show the main(=root) directory(=folder) on the top of the list of sub-directories, I just want to show the sub-directoriesas shown down in the illustration.

解决方案

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

这篇关于如何使用TreeView的子目录中列出的文件没有显示的根目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆