就像现在的ftp软件一样,选择一个磁盘,就以列表的形式列出磁盘下所有的文件夹和文件,用comboBox来选择盘符,用listView来显示目录。

解决方案 »

  1.   

    遍历算法很简单,但是速度比较慢:
     private void Button1_Click(object sender, System.EventArgs e)
            {
                string tmp = "C:";
                this.TreeView1.Nodes[0].Nodes.Clear();
                ShowInfoFromDirector(tmp,this.TreeView1.Nodes[0]);
            }
            
            private void ShowInfoFromDirector(string path,Microsoft.Web.UI.WebControls.TreeNode node)
            {
                if(!System.IO.Directory.Exists(path))return;
                try
                {
                    string[] dirs = System.IO.Directory.GetDirectories(path);
                    string[] files = System.IO.Directory.GetFiles(path);
                    for(int i=0;i<dirs.Length;i++)
                    {
                        Microsoft.Web.UI.WebControls.TreeNode newNode = new Microsoft.Web.UI.WebControls.TreeNode();
                        newNode.Text = dirs[i];
                        node.Nodes.Add(newNode);
                        ShowInfoFromDirector(dirs[i],newNode);
                    }
                    for(int j=0;j<files.Length;j++)
                    {
                        Microsoft.Web.UI.WebControls.TreeNode newNode = new Microsoft.Web.UI.WebControls.TreeNode();
                        newNode.Text = files[j];
                        node.Nodes.Add(newNode);
                    }
                }
                catch{}
            }
      

  2.   

    不是用treeview,用listview来显示
      

  3.   

    listview 与 treeview的区别在于
    前者不用显示树形结构,即每次只显示一级的数据,
    string[] dirs = System.IO.Directory.GetDirectories(path);
    string[] files = System.IO.Directory.GetFiles(path);
    你用上面的两个方法就可以实现了
    path从盘符开始,每次根据你选择的listview的item来取得要显示下级的当前路径