你需要用一个递归函数来解决,如下:
private void getFilesInDir(String driver)
{
   String[] files= Directory.GetFiles(driver,"*.*");
   foreach(String file in files)
   {
       ...//do ur job
    }   String [] directories = Directory.GetDirectories(driver);
   foreach(String directory in directories)
   {
getProgramsInDir(directory);
   }
}

解决方案 »

  1.   

    下面例子列出e:\abc文件夹下所有的文件夹
    ArrayList al=new ArrayList();
    DirectoryInfo dinfo=new DirectoryInfo("e:\\abc");
    al.Add(dinfo);
    int index=0;
    while (index<al.Count)
    {
    dinfo=(DirectoryInfo)al[index];
    listBox1.Items.Add(dinfo.Name);
    if (dinfo.GetDirectories()!=null)
    al.AddRange(dinfo.GetDirectories());
    index++;
    }
      

  2.   

    如果仅仅是搜索,不需要分辨子目录或子子目录属于哪个根目录,使用我上面给出的方法就足够了,the simplest is the best :).