可以参考我以前在一个帖子中的回复:http://bbs.csdn.net/topics/390680469?page=1

解决方案 »

  1.   

    使用递归。
    google csdn caozhy 递归 遍历
    我肯定写过很多次了。
      

  2.   

    Node func(Node N)
    {
         foreach(Node n in N)
    {
    //To Do the right thing......For example if(n==**) return n;
      func(n);
    }
    }
      

  3.   

    这个就跟获取文件夹目录树一样的思路这是资源管理器里显示的目录结构
    这个是刚才写的demo的结果代码如下
    TreeNode getNode(string path)
    {
        DirectoryInfo dir = new DirectoryInfo(path);
        TreeNode node = new TreeNode();
        node.Text = dir.Name;    foreach (DirectoryInfo item in dir.GetDirectories())
        {
            TreeNode newNode = getNode(item.FullName);
            node.Nodes.Add(newNode);
        }
        return node;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        TreeNode nodeMain = getNode(@"E:\测试");
        treeView1.Nodes.Add(nodeMain);
    }