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)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

s.Push(dix); // 将文件夹都放入栈中
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

ArrayList alist = new ArrayList();

while ( 0 != s.Count)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/
ContractedBlock.gif) … {

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

FileInfo[] fi = dixx.GetFiles();

foreach (FileInfo xx in fi)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockStart.gif) ![](http://images.csdn.net/syntaxhighlighting/OutliningIndicato
rs/ContractedSubBlock.gif) … {

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


Console.WriteLine(xx.Name);

![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubB
lockEnd.gif) }
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBloc
kEnd.gif) }

System.Console.Read();



//
还有更简单的方法。

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

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

这里还要加入

using System.IO;

using System.Collection;

其中GetFiles(“*”,SearchOption.AllDirectories)中的第一个参数是查询模式,符合正则表达式的使用习惯。

第二个参数中一个值是递归的搜索所有目录,一个只是当前目录,不搜索其他子目录