我现在要创建一个如Windows“资源管理器”所有文件夹像TreeView一样的东东,但是C#里文件夹的选择是通过folderBrowserDialog对话框来进行的,选择文件夹很不方便。自己编程用遍历的方法将每个目录及其子目录加入到TreeView控件中,时间又太长了,有没有现成的一个控件或API来得到?

解决方案 »

  1.   

    我也正在做这个东西
    我的方法是创建一个新的线程来迭代搜索每个文件夹
    把文件夹显示在tmpTreeView里面
    最后才把tmpTreeView加到窗体上
      

  2.   

    你说的这个问题的算法在于递归
    用到的东西关键是System.IO里的directory和file这两个类
      

  3.   

    还是要一个一个搜索啊,只不过是在后台进行了,要是能直接用到folderBrowserDialog控件的内容那多好啊
      

  4.   

    具体可以参考这个:
    在目录下常见文件并统计文件夹下的文件个数
    using System;
    using System.IO;class Test 
    {
        public static void Main() 
        {
            // Specify the directories you want to manipulate.
            string path = @"c:\MyDir";
            string target = @"c:\TestDir";        try 
            {
                // Determine whether the directory exists.
                if (!Directory.Exists(path)) 
                {
                    // Create the directory it does not exist.
                    Directory.CreateDirectory(path);
                }            if (Directory.Exists(target)) 
                {
                    // Delete the target to ensure it is not there.
                    Directory.Delete(target, true);
                }            // Move the directory.
                Directory.Move(path, target);            // Create a file in the directory.
                File.CreateText(target + @"\myfile.txt");            // Count the files in the target directory.
                Console.WriteLine("The number of files in {0} is {1}",
                    target, Directory.GetFiles(target).Length);
            } 
            catch (Exception e) 
            {
                Console.WriteLine("The process failed: {0}", e.ToString());
            } 
            finally {}
        }
    }