如何获得2级目录?

时间:2014-03-30 19:23:54

标签: c# recursion directory

我有一个这样的目录,有一些子目录:

root
    child-1
        child-1-1
            child-1-1-1
            ...
            child-1-1-n
        child-1-2
            child-1-2-1
            ...
            child-1-2-n
        ...
    child-2
        child-2-1
            child-2-1-1
            ...
            child-2-1-n
        child-2-2
            child-2-2-1
            ...
            child-2-2-n
    child-N

使用此代码:

var dirInfo = new DirectoryInfo(@"c:\root");
var folders = dirInfo.GetDirectories().ToList();
foreach (var item in folders)
{
  Console.WriteLine(item.Name);
}

我只获得第一级;

child-1
child-2
child-3
....
child-n

现在我想获得2级root目录列表:

child-1
    child-1-1
    child-1-2
child-2
    child-2-1
    child-2-2
...

我认为使用递归函数是可能的,但我不确定。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这应该可以帮助你,只需指定你想要在主方法中的深度

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.BufferHeight = 500;
            listDirec(@"c:\program files", 1, 2);
            Console.ReadKey();
        }

        static void listDirec(string path, int start, int end)
        {
            var dirInfo = new DirectoryInfo(path);
            var folders = dirInfo.GetDirectories().ToList();

            foreach (var item in folders)
            {
                Console.WriteLine("".PadLeft(start * 4, ' ') + item.Name);

                if (start < end)
                    listDirec(item.FullName, start + 1, end);
            }
        }
    }
}