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


4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19



20

21



22

23

24

25

26



27

28

29

30

31

32

33



34

35

36

37

38



39

40

41

42

43



44

45



46

47



48

49

50

51

52

53

54

55



56

57

58

59
