/// <summary> /// 找出全部的子文件夹 /// </summary> /// <param name="rootPath">根目录</param> /// <returns></returns> public static List<DirectoryInfo> GetAllDirectory(string rootPath) { if (!Directory.Exists(rootPath)) return new List<DirectoryInfo>(); List<DirectoryInfo> directoryList = new List<DirectoryInfo>();//容器 DirectoryInfo directory = new DirectoryInfo(rootPath);//root文件夹 directoryList.Add(directory); return GetChild(directoryList, directory); } /// <summary> /// 完成 文件夹--子目录--放入集合 /// </summary> /// <param name="directoryList"></param> /// <param name="directoryCurrent"></param> /// <returns></returns> private static List<DirectoryInfo> GetChild(List<DirectoryInfo> directoryList, DirectoryInfo directoryCurrent) { var childArray = directoryCurrent.GetDirectories(); if (childArray != null && childArray.Length > 0) { directoryList.AddRange(childArray); foreach (var child in childArray) { GetChild(directoryList, child); } } return directoryList; }