1
using
System.IO;
2
3 /**/ /// <summary>
4/// 取得指定路径下所有目录及文件名称(可递归)
5/// </summary>
6/// <param name="strDir">指定路径</param>
7/// <param name="strFilePattern">要与 strDir 中的文件名匹配的搜索字符串
8/// 例:
9/// “*.abc*”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
10/// “*.abcd”只返回扩展名为 .abcd 的文件。
11/// “*.abcde”只返回扩展名为 .abcde 的文件。
12/// “*.abcdef”只返回扩展名为 .abcdef 的文件。
13/// </param>
14/// <param name="arrDirs">查询得到的所有目录ArrayList</param>
15/// <param name="arrFiles">查询得到的所有文件名称ArrayList</param>
16/// <param name="bIsRecursive">是否递归查询</param>
17 private void GetFileList( string strDir, string strFilePattern, ArrayList arrDirs,
18 ArrayList arrFiles, bool bIsRecursive)
19 {
20 if (string.IsNullOrEmpty(strDir))
21 { // 参数正确性检查
22 return;
23 }
24
25 try
26 {
27 // 取得指定路径下所有符合条件的文件
28 string[] strFiles = Directory.GetFiles(strDir, strFilePattern);
29 // 取得指定路径下所有目录
30 string[] strDirs = Directory.GetDirectories(strDir);
31
32 foreach (string name in strFiles)
33 { // 将所有文件名称加入结果ArrayList中
34 arrFiles.Add(name);
35 }
36
37 foreach (string name in strDirs)
38 { // 将所有目录加入结果ArrayList中
39 arrDirs.Add(name);
40 }
41
42 if (bIsRecursive)
43 { // 递归
44 if (strDirs.Length > 0)
45 {
46 foreach (string dir in strDirs)
47 { // 递归遍历所有文件夹
48 GetFileList(dir, strFilePattern, arrDirs, arrFiles, bIsRecursive);
49 }
50 }
51 }
52
53 }
54 catch
55 {// 异常处理
56 }
57}
58
59
2
3 /**/ /// <summary>
4/// 取得指定路径下所有目录及文件名称(可递归)
5/// </summary>
6/// <param name="strDir">指定路径</param>
7/// <param name="strFilePattern">要与 strDir 中的文件名匹配的搜索字符串
8/// 例:
9/// “*.abc*”返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
10/// “*.abcd”只返回扩展名为 .abcd 的文件。
11/// “*.abcde”只返回扩展名为 .abcde 的文件。
12/// “*.abcdef”只返回扩展名为 .abcdef 的文件。
13/// </param>
14/// <param name="arrDirs">查询得到的所有目录ArrayList</param>
15/// <param name="arrFiles">查询得到的所有文件名称ArrayList</param>
16/// <param name="bIsRecursive">是否递归查询</param>
17 private void GetFileList( string strDir, string strFilePattern, ArrayList arrDirs,
18 ArrayList arrFiles, bool bIsRecursive)
19 {
20 if (string.IsNullOrEmpty(strDir))
21 { // 参数正确性检查
22 return;
23 }
24
25 try
26 {
27 // 取得指定路径下所有符合条件的文件
28 string[] strFiles = Directory.GetFiles(strDir, strFilePattern);
29 // 取得指定路径下所有目录
30 string[] strDirs = Directory.GetDirectories(strDir);
31
32 foreach (string name in strFiles)
33 { // 将所有文件名称加入结果ArrayList中
34 arrFiles.Add(name);
35 }
36
37 foreach (string name in strDirs)
38 { // 将所有目录加入结果ArrayList中
39 arrDirs.Add(name);
40 }
41
42 if (bIsRecursive)
43 { // 递归
44 if (strDirs.Length > 0)
45 {
46 foreach (string dir in strDirs)
47 { // 递归遍历所有文件夹
48 GetFileList(dir, strFilePattern, arrDirs, arrFiles, bIsRecursive);
49 }
50 }
51 }
52
53 }
54 catch
55 {// 异常处理
56 }
57}
58
59