如何可以将某个文件夹(目录)下的所有子文件夹名(子文件夹下的也要)加入到ArrayList中?

解决方案 »

  1.   

    private void GetFileInfo(string filePath, TreeNode node)
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(filePath);
                try
                {
                    foreach (DirectoryInfo childDirectoryInfo in directoryInfo.GetDirectories())
                    {
                        TreeNode directoryNode = new TreeNode(childDirectoryInfo.Name.ToString());
                        directoryNode.Tag = childDirectoryInfo.Name.ToString();
                        GetFileInfo(filePath + "\\" + childDirectoryInfo.Name.ToString(), directoryNode);
                        node.Nodes.Add(directoryNode);
                    }
                    foreach (FileInfo fileInfo in directoryInfo.GetFiles("*.html"))
                    {
                        TreeNode leafNode = new TreeNode();
                        leafNode.Text = fileInfo.Name.ToString().Substring(0,fileInfo.Name.ToString().IndexOf(".html"));
                        leafNode.Tag = fileInfo.Name.ToString();
                        node.Nodes.Add(leafNode);
                    }
     }
                catch
                { 
                }
            }使用介绍:            TreeNode treenode = new TreeNode();
                treenode.Text = "报表树";
                GetFileInfo(@"C:\AutoReport", treenode);
                this.treeView1.Nodes.Add(treenode); 给个相关的给你 
      

  2.   

    写的不好 见笑了
    public class Test
    {
          public static void Main()
      { 
           string   filename=@"D:\test";
           FileInfo file=new FileInfo(filename);
           List<string> list = new List<string>();
           AddDirectory(list, file);
       
         foreach(string s in list)
            {
                Console.WriteLine(s);
            }
       
    }    static void  AddDirectory(List<string> list,FileInfo file) 
    {
               
                     if (Directory.Exists(file.FullName)) 

    string[] files = Directory.GetFileSystemEntries(file.FullName); 

    if (files != null) 

    for (int i = 0; i < files.Length; i++) 

    AddDirectory( list,new FileInfo(files[i]));  



    else  

                    //Console.WriteLine(file.Name);
    list.Add(file.Name);

                  

    }
      

  3.   

    string [] Files; Files = Directory. GetFiles (@"",); 
    foreach (string name in strFiles) 
    {          
      arrFiles.Add(name);  

    大概就这样......
      

  4.   

    用迭代法
    using System;
    using System.Collections.Generic;
    using System.Text;using System.IO;
    using System.Collections;namespace CTTest
    {
        class Program
        {
            private static ArrayList dirarray = new ArrayList();
            static void Main(string[] args)
            {
                string dir = @"D:\a";
                searchsubdir(dir);
                foreach (object sdir in dirarray)
                {
                    Console.WriteLine(sdir.ToString());
                }
                Console.ReadKey();
            }        static void searchsubdir(string fatherdir)
            {
                string[] subdir = Directory.GetDirectories(fatherdir);
                for (int i = 0; i < subdir.Length; i++)
                {
                    dirarray.Add(subdir[i]);
                    searchsubdir(subdir[i]);
                }
            }
        }
    }