C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
1 public partial class FileGet 2 { 3 /// <summary> 4 /// 私有变量 5 /// </summary> 6 private static List<FileInfo> lst = new List<FileInfo>(); 7 /// <summary> 8 /// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹) 9 /// </summary> 10 /// <param name="path">文件夹路径</param> 11 /// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param> 12 /// <returns>List<FileInfo></returns> 13 public static List<FileInfo> getFile(string path, string extName) 14 { 15 getdir(path, extName); 16 return lst; 17 } 18 /// <summary> 19 /// 私有方法,递归获取指定类型文件,包含子文件夹 20 /// </summary> 21 /// <param name="path"></param> 22 /// <param name="extName"></param> 23 private static void getdir(string path, string extName) 24 { 25 try 26 { 27 string[] dir = Directory.GetDirectories(path); //文件夹列表 28 DirectoryInfo fdir = new DirectoryInfo(path); 29 FileInfo[] file = fdir.GetFiles(); 30 //FileInfo[] file = Directory.GetFiles(path); //文件列表 31 if (file.Length != 0 || dir.Length != 0) //当前目录文件或文件夹不为空 32 { 33 foreach (FileInfo f in file) //显示当前目录所有文件 34 { 35 if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= 0) 36 { 37 lst.Add(f); 38 } 39 } 40 foreach (string d in dir) 41 { 42 getdir(d, extName);//递归 43 } 44 } 45 } 46 catch (Exception ex) 47 { 48 LogHelper.WriteLog(ex); 49 throw ex; 50 } 51 } 52 } 53 54 55 public partial class FileGet1 56 { 57 /// <summary> 58 /// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹) 59 /// </summary> 60 /// <param name="path">文件夹路径</param> 61 /// <param name="extName">扩展名可以多个 例如 .mp3.wma.rm</param> 62 /// <returns>List<FileInfo></returns> 63 public static List<FileInfo> getFile(string path, string extName) 64 { 65 try 66 { 67 List<FileInfo> lst = new List<FileInfo>(); 68 string[] dir = Directory.GetDirectories(path); //文件夹列表 69 DirectoryInfo fdir = new DirectoryInfo(path); 70 FileInfo[] file = fdir.GetFiles(); 71 //FileInfo[] file = Directory.GetFiles(path); //文件列表 72 if (file.Length != 0 || dir.Length != 0) //当前目录文件或文件夹不为空 73 { 74 foreach (FileInfo f in file) //显示当前目录所有文件 75 { 76 if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= 0) 77 { 78 lst.Add(f); 79 } 80 } 81 foreach (string d in dir) 82 { 83 getFile(d, extName);//递归 84 } 85 } 86 return lst; 87 } 88 catch (Exception ex) 89 { 90 LogHelper.WriteLog(ex); 91 throw ex; 92 } 93 } 94 95 }