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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM