用treeview实现主目录以及在相应的主目录下无限添加子目录,还有删除,修改所有在这个树上的目录,麻烦各位大虾帮帮小弟,最好是以前开发过的原代码加解释,拜托!

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
      if(!IsPostBack)
      { 
         string path ="E:\\temp";
         ShowDirectories(path,this.TreeView1.Nodes,"0");
      }
    }/// <summary>
    /// 显示指定文件夹下的所有子文件夹
    /// </summary>
    private void ShowDirectories(string dirPath,Microsoft.Web.UI.WebControls.TreeNodeCollection nodes,string nodeIndex)
    {
                TreeNode newNode = new TreeNode();
                newNode.Text = dirPath.Substring(dirPath.LastIndexOf("\\")+1);
                newNode.NodeData = dirPath;
                newNode.ImageUrl = "Images\\folder1.gif";
                nodes.Add(newNode);
                string[] childDirs = System.IO.Directory.GetDirectories(dirPath);
                if(childDirs.Length>0)
                    for(int i=0;i<childDirs.Length;i++)
                        ShowDirectories(childDirs[i],newNode.Nodes,nodeIndex+"."+i.ToString());//            string[] files = System.IO.Directory.GetFiles(dirPath);
    //            if(files.Length>0)
    //                for(int j=0;j<files.Length;j++)
    //                {
    //                    TreeNode fileNode = new TreeNode();
    //                    fileNode.Text = files[j];
    //                    fileNode.ImageUrl = "Images\\file.jpg";
    //                    newNode.Nodes.Add(fileNode);
    //                    
    //                }
                
                
            }/// <summary>
    /// 在当前选中的文件夹中创建一个新的子文件夹
    /// </summary>
     private void Button1_Click(object sender, System.EventArgs e)
            {
                string newDirName = "新的子文件夹";            if(this.TreeView1.SelectedNodeIndex != null)
                {
                    TreeNode curNode = this.TreeView1.GetNodeFromIndex(this.TreeView1.SelectedNodeIndex);
                    if(curNode == null) return;                System.IO.DirectoryInfo  dir = new System.IO.DirectoryInfo(curNode.NodeData);
                    System.IO.DirectoryInfo subDir = dir.CreateSubdirectory(newDirName);
                    dir = null;                TreeNode newNode = new TreeNode();
                    newNode.Text = newDirName;
                    newNode.NodeData = subDir.FullName;
                    curNode.Nodes.Add(newNode);
                }
    }