C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)

时间:2021-11-08 12:25:24
 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 }