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是容器,拷貝我的代碼,注意要換一個你自己的容器
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM