C#遞歸方法遍歷目錄及子目錄

衆所周知,得到某一目錄下第一級的全部文件和文件夾列表,很容易辦到:
DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目錄,絕對地址
DirectoryInfo[] diA=di.GetDirectories();//得到了全部一級子目錄
FileInfo[] fiA=di.GetFiles();//得到了全部起始目錄下的文件
要是想得到某一目錄下的全部文件和目錄(包含全部子目錄),那該怎麼辦呢?目錄都是一層套一層的,咱們不能預知某個目錄的深度,只有得到了父節點,纔有可能瞭解子節點,解決這個問題,只有遞歸這個概念了。
那麼什麼是遞歸呢?請不會C語言的朋友先去看書吧,我這裏只簡單的說一下個人理解:遞歸就是一個方法,在這個方法裏面,再次調用它自己這個方法,從而描述了某一事物運做的深度…… - - 不廢話了,看代碼吧:

public ArrayList al=new ArrayList();

//我把ArrayList當成動態數組用,很是好用

public void GetAllDirList(string strBaseDir)

{

  DirectoryInfo di=new DirectoryInfo(strBaseDir);

  DirectoryInfo[] diA=di.GetDirectories();

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



  {

   al.Add(diA[i].FullName);

  //diA[i].FullName是某個子目錄的絕對地址,把它記錄在ArrayList中

   GetAllDirList(diA[i].FullName);

  //注意:遞歸了。邏輯思惟正常的人應該能反應過來

  }

}

最後,如何把全部目錄信息從ArrayList中取出來呢?以下:

for(int i=0;i<al.Count;i++)
{
   textBox1.AppendText(al[i].ToString()+" ");
  //textBox1是容器,拷貝個人代碼,注意要換一個你本身的容器
}
相關文章
相關標籤/搜索