我一直在寻找一种算法,因此操作系统没有问题,如何在不使用递归的情况下循环访问文件夹。
递归不是答案,因为递归不能进入“无限”以及更远,而“while循环”可以到达那里。
编程语言并不重要。
答案 0 :(得分:5)
您可以使用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);
}
}