C#读取所有子文件夹的路径(子文件夹必须读到最底层的文件夹,该文件夹下就不会再有文件夹了)
string[]ss=Directory.GetDirectories(@"D:\Document\","*",SearchOption.AllDirectories);...
string[] ss = Directory.GetDirectories(@"D:\Document\","*", SearchOption.AllDirectories);
我这样获取的地址会有DOCUMENT的二三级文件夹,不是我想要的获取最后一级文件夹,比如说DOCUMENT下有1文件夹,1文件夹下有2文件夹2文件夹下就没有子文件夹了,现在我只需要获取2文件夹的path:D:\Document\1\2,而不需要1文件夹的path:D:\Document\1,求指点,财富值用光了,只能说谢谢好心人了 展开
我这样获取的地址会有DOCUMENT的二三级文件夹,不是我想要的获取最后一级文件夹,比如说DOCUMENT下有1文件夹,1文件夹下有2文件夹2文件夹下就没有子文件夹了,现在我只需要获取2文件夹的path:D:\Document\1\2,而不需要1文件夹的path:D:\Document\1,求指点,财富值用光了,只能说谢谢好心人了 展开
展开全部
/// <summary>
/// 查找指定目录下的所有末级子目录
/// </summary>
/// <param name="dir">要查找的目录</param>
/// <param name="list">查找结果列表</param>
/// <param name="system">是否包含系统目录</param>
/// <param name="hidden">是否包含隐藏目录</param>
static void GetEndDirectories(DirectoryInfo dir, List<DirectoryInfo> list, bool system=false, bool hidden=false)
{
DirectoryInfo[] sub = dir.GetDirectories();
if (sub.Length == 0)
{// 没有子目录了
list.Add(dir);
return;
}
foreach (DirectoryInfo subDir in sub)
{
// 跳过系统目录
if (!system && (subDir.Attributes & FileAttributes.System) == FileAttributes.System)
continue;
// 跳过隐藏目录
if (!hidden && (subDir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
continue;
GetEndDirectories(subDir, list);
}
}
调用方法:
List<DirectoryInfo> list = new List<DirectoryInfo>();
DirectoryInfo dir = new DirectoryInfo(@"D:\Document\");
GetEndDirectories(dir, list);
// 输出所有目录
foreach (DirectoryInfo di in list)
{
Console.WriteLine(di.FullName);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询