public partial class frmTree : Form
    {
        public frmTree()
        {
            InitializeComponent();
            FillTreeDirectories(tvwDirectory);
        }        private void FillTreeDirectories(TreeView tvwDirectory)
        {
            //throw new Exception("The method or operation is not implemented.");
            string[] StrDrivers = Environment.GetLogicalDrives(); //读目录            foreach(string Driver in StrDrivers)
                
            {
                //if (Driver != @"D:\")
                //{
                //    continue;
                //}
                if (Driver == @"D:\")
                {
                TreeNode rootDir = new TreeNode(Driver);  //节点
                tvwDirectory.Nodes.Add(rootDir);
                GetSubDirectories(rootDir,rootDir.Text);
            }
            }        }        private void GetSubDirectories(TreeNode ParentNode, string FullName)
        {
            //throw new Exception("The method or operation is not implemented.");
            DirectoryInfo dir = new DirectoryInfo(FullName);
            DirectoryInfo[] SubDirs=dir.GetDirectories();
            foreach (DirectoryInfo SubDir in SubDirs)
            {
                if ((SubDir.Attributes & FileAttributes.Hidden) != 0)
                {
                    continue;
                }                TreeNode subNode = new TreeNode(SubDir.Name);//FulName 目录名              
                GetSubDirectories(subNode,SubDir.FullName); //FullName 目录名
                ParentNode.Nodes.Add(subNode);
            }
        }               private void tvwDirectory_AfterSelect(object sender, TreeViewEventArgs e)
        {
            
            lvwFiles.Items.Clear();
            string Path = e.Node.FullPath;
            txtPath.Text = Path.Remove(2,1);
            DirectoryInfo dir = new DirectoryInfo(Path);
            FileInfo [] Files=dir.GetFiles();
            foreach(FileInfo file in Files)
            {
                lvwFiles.Items.Add(file.Name);
            }
        }
    }

解决方案 »

  1.   

    没什么问题啊,我已经调试过了。
    但也存在严重的性能问题,你在程序运行后就load了所有的目录及子目录,
    我的D盘目录很多,就会导致程序没响应,等很久才能运行出来。
    刚开始应该只load根目录下的目录,在用户点击的时候,再进入下一层目录。
    这种文件夹对话框的源码,网上有的,你可以搜一下。