获取到一个字符串...
  xx/xx/xx/xx.xx
   比如
      str ="新建文件夹1/新建文件夹2/新建文件夹3/aa.txt"
     str2 ="新建文件夹1/新建文件夹2/新建文件夹4/bb.txt"
    节点的成次是这样的:
----------------------------
       新建文件夹1
         新建文件夹2
           新建文件夹3
             aa.txt
           新建文件夹4
             bb.txt
----------------------------
     3和4平级都是2的子节点. 2是1的子节点.           类似windows 资源管理器.那样. 是文件夹就创建个文件夹节点, 是子文件夹 就在该文件夹下创建个子文件夹节点.
    动态的. 给个方法.无论下面有多少个子文件夹.
问题来了。
  如何动态写?  字符串不固定. 可以把str通过\字符分割成数组.只有最后一项包含"."符号
   但是如何动态画到treeview中. 层次结构要一致. 具体样式参考Windows资源管理器.!!

解决方案 »

  1.   

    我给你两个方法,你也许就明白了,原理是递归,第一个方法是绑定第一级节点,第二个方法是绑定其他节点,不明白的再问我。
        private void initTree()
        {
            DataRow[] drs = dt.Select("ParentID=0", "ModulePosition asc");
            for (int i = 0; i < drs.Length; i++)
            {
                TreeNode tn = new TreeNode( drs[i][1].ToString());            if (drs[i][2].ToString() != "")
                {
                    tn.NavigateUrl = drs[i][2].ToString();
                    tn.Target = "fright";
                }
                else
                {
                    tn.SelectAction = TreeNodeSelectAction.Select;
                }
                tn.Expanded = false;
                tn.ImageUrl = "~/images/" + drs[i][5].ToString();
                this.TreeView1.Nodes.Add(tn);
                LoadTree(tn, Convert.ToInt32(drs[i][0]));
            }
        }    private void LoadTree(TreeNode tn, int parentid)
        {
            DataRow[] drs = dt.Select("ParentID=" + parentid, "ModulePosition asc");
            for (int i = 0; i < drs.Length; i++)
            {
                TreeNode child = new TreeNode( drs[i][1].ToString());
                if (drs[i][2].ToString() != "")
                {
                    child.NavigateUrl = drs[i][2].ToString();
                    child.Target = "fright";
                }
                else
                {
                    
                }
                tn.SelectAction = TreeNodeSelectAction.Select;
                child.Expanded = false;
                child.ImageUrl = "~/images/" + drs[i][5].ToString();
                tn.ChildNodes.Add(child);
                LoadTree(child,Convert.ToInt32(drs[i][0]));
            }
        }
      

  2.   

    4楼能不能在具体点.
      假如我取的字符串: string str1="ss/dd/ff/aa.cs";
                      string str2="ss/dd/aa.cs";  怎么样动态的将他们画到Treeview 上面
      
       要动态的方法, 不是只针对与他俩. 取到的字符串是活的.
      

  3.   

    对象化一下做一个类  有 deep  parent...等属性  
    想办法把这个字符串构造成对象的形式 。
    ss/dd/ff/aa.cs"
    主要构造 ss 和 dd 的关系 及位置 即可。