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

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

          [code lang=”csharp”]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);
            //注意:遞歸了。邏輯思維正常的人應該能反應過來
            }
          }[/code]

          最后,如何把所有目錄信息從ArrayList中取出來呢?如下:

          [code lang=”csharp”]for(int i=0;i<al.Count;i++)
          {
             textBox1.AppendText(al[i].ToString()+" ");
            //textBox1是容器,拷貝我的代碼,注意要換一個你自己的容器
          }[/code]

          本博客所有文章如無特別注明均為原創

          如果覺得對你有幫助,可以通過下方打賞對作者表示鼓勵

          本文采用知識共享署名-非商業性使用-相同方式共享

          如若轉載,請注明出處:《C#遞歸方法遍歷目錄及子目錄》http://www.solariosolutions.com/318.html

          (0)
          打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
          鋒哥的頭像鋒哥管理員
          上一篇 2013年6月4日 13:49
          下一篇 2013年6月9日 11:20

          相關推薦

          發表回復

          登錄后才能評論
          国产厨房乱子伦露脸,XXXXAAA欧美,日本 888 XXXX,国产欧美日韩一区二区图片