C#得某文件夹下所有的文件

DirectoryInfo di = new DirectoryInfo( " c:/TestFile " );

System.Collections.Stack s = new Stack();

s.Push(di);
//
这里本路径下所有的文件夹

DirectoryInfo[] dii = di.GetDirectories( " * "
,SearchOption.AllDirectories);


foreach (DirectoryInfo dix in dii)
  … {

s.Push(dix); // 将文件夹都放入栈中
 }

ArrayList alist = new ArrayList();

while ( 0 != s.Count)
  … {

DirectoryInfo dixx = (DirectoryInfo)s.Pop();

FileInfo[] fi = dixx.GetFiles();

foreach (FileInfo xx in fi)
  … {

alist.Add(xx); // 将文件信息存入ArrayList


Console.WriteLine(xx.Name);

 }
 }

System.Console.Read();



//
还有更简单的方法。

DirectoryInfo di = new DirectoryInfo( " c:/TestFile " );

FileInfo[] fi = di.GetFiles( " * " ,SearchOption.AllDirectories);


这里还要加入
using System.IO;
using System.Collection;
其中GetFiles(“*”,SearchOption.AllDirectories)中的第一个参数是查询模式,符合正则表达式的使用习惯。
第二个参数中一个值是递归的搜索所有目录,一个只是当前目录,不搜索其他子目录