2011-03-03 212 views
3

我一直在尋找一種算法,所以操作系統不是問題,如何通過文件夾循環,而無需使用遞歸的。遍歷文件夾沒有遞歸

遞歸是沒有答案,因爲遞歸不能去「無窮大」和超越,而「while循環」可以到達那裏。

編程語言並不重要。

+1

什麼平臺,操作系統? –

+1

你想解決什麼問題?爲什麼遞歸不是答案? –

+0

我在找算法,所以操作系統不是問題。遞歸是沒有答案,因爲遞歸不能去了「無窮大」,而「while循環」可以走了。 – Vizualni

回答

4

您可以使用stack數據結構depth-first遍歷。以下是C#中的一些示例代碼:

var stack = new Stack<string>(); 

    stack.Push(@"C:\"); 

    while (stack.Count > 0) 
    { 
     var currentDirectory = stack.Pop(); 
     Console.WriteLine("Visiting: " + currentDirectory); 

     foreach (var childDirectory in Directory.GetDirectories(currentDirectory)) 
     { 
      stack.Push(childDirectory); 
     } 
    } 
+0

謝謝。它的工作完美。 :) – Vizualni

+0

當然,這只是手動複製什麼編譯器會爲你做,如果你已在第一時間使用遞歸。 –