概念:
算法文章,總是帶給我們無窮的思考和興趣,一個問題,多種解決方法,看你如何去思考它,對於標題所引出的問題,我覺得,使用遞歸是比較有效的方法,當然遞歸還有很多使用場合,如樹型分類列表的操作等等。
注意:
使用遞歸時,初學者要特別注意的就是“出口”,必須為遞歸提供一個出口,否則你的內存就要溢出了,呵呵,memory overflow大家肯定都見過,都是從那時候過來的,呵呵。
代碼中的遞歸:
核心代碼
static void GetFiles(List<string> arr, string dir) { arr.AddRange(Directory.GetFiles(dir)); var subDir = Directory.GetDirectories(dir).ToList(); if (subDir != null && subDir.Count > 0) subDir.ForEach(j => { GetFiles(arr, j); }); }
程序入口
static void Main(string[] args) { string path = "F:\\softmare\\Fiddler2漢化"; var obj = FileSync(path); using (System.IO.StreamWriter srFile = new System.IO.StreamWriter(path + "\\filelist.txt")) { obj.ForEach(i => { srFile.WriteLine(i); }); } Console.WriteLine("填充完成"); Console.ReadKey(); }
結果如圖:
讓程序代碼變得更有藝術感吧!