循环文件夹而不递归

Viz*_*lni 3 language-agnostic recursion

我正在寻找一种算法,所以操作系统没有问题,如何在不使用递归的情况下循环遍历文件夹.

递归不是答案,因为递归不能进入"无限"和更远,而"while循环"可以到达那里.

编程语言并不重要.

Ata*_*hev 5

您可以使用堆栈数据结构进行深度优先遍历.以下是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);
        }
    }
Run Code Online (Sandbox Code Playgroud)