我有一个这样的目录,有一些子目录:
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
...
我认为使用递归函数是可能的,但我不确定。
提前致谢。
答案 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);
}
}
}
}