迭代地循环遍历文件

时间:2017-06-18 19:48:03

标签: c# recursion iteration

static void PrintDirectories(string path, int level = 0)
    {
        string[] dirs = Directory.GetDirectories(path);
        for (int i = 0; i < dirs.Length; i++)
        {
            for (int j = 0; j < level; j++)
            {
                Console.Write("\t");
            }
            Console.WriteLine(dirs[i]);
            PrintDirectories(dirs[i], level + 1);
        }
    }

有没有办法用迭代方法编写这个递归代码而不使用堆栈和列表,我没有想法,互联网还没有给我一个直接的答案。

1 个答案:

答案 0 :(得分:2)

简单的anser是没有

您正在处理递归数据结构(目录树)。所以,你要么做递归,这是最简单的方法,要么使用堆栈来保存当前的目录列表。

当然,您可以先使用此方法展平它,创建一个包含所有内容的平面列表。比你可以在一个简单的循环中打印列表。