循环文件夹而不递归

时间:2011-03-03 09:33:16

标签: language-agnostic recursion

我一直在寻找一种算法,因此操作系统没有问题,如何在不使用递归的情况下循环访问文件夹。

递归不是答案,因为递归不能进入“无限”以及更远,而“while循环”可以到达那里。

编程语言并不重要。

1 个答案:

答案 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);
        }
    }
相关问题