日期:2014-05-16  浏览次数:21505 次

C#遍历文件夹, 获取文件/目录信息
string path = "D:\";
string[] allFiles;
ArrayList<string> targetFiles = new ArrayList<string>();


遍历path目录下的文件(不包括子目录中的)
allFiles = Directory.GetFiles(path);   
foreach(string strFile in allFiles)   
{   
targetFiles.Add(strFile);
  //或其他操作 



遍历path目录下的某种特定类型文件(不包括子目录中的)
allFiles = Directory.GetFiles(path, "*.exe");   
foreach(string strFile in allFiles)   
{   
targetFiles.Add(strFile);
  //或其他操作 



遍历path目录下的某些特定类型文件(不包括子目录中的),方法一
allFiles = Directory.GetFiles(path);   
foreach(string strFile in allFiles)   
{   
FileInfo fi=new FileInfo(strfile);   
if (fi.Extension==".jpg"||fi.Extension==".bmp")
targetFiles.Add(strFile);
  //或其他操作 
}


遍历path目录下的某些特定类型文件(不包括子目录中的),方法二(好像在VS2008以上版本才支持)
System.IO.Directory.GetFiles()获取多个类型格式的文件
System.IO.Directory.GetFiles("c:\","*.exe|*.txt");          //这样写,编译会报错。


allFiles = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".bmp") || s.EndsWith(".jpg"));
foreach(string strFile in allFiles)   
{   
targetFiles.Add(strFile);
  //或其他操作 
}


遍历path目录下的文件(包括子目录中的),方法一
DirectoryInfo dir = new DirectoryInfo(path);
public void FindFile(DirectoryInfo dir)   //参数为指定的目录  
{        
foreach(FileSystemInfo fsi in dir.GetFileSystemInfos())
{
if (fsi is FileInfo)
{
FileInfo fi = (FileInfo)fsi;
                targetFile.Add(fi.ToString());
}
else
{
DirectoryInfo di = (DirectoryInfo)fsi;
                FindFile(di);
}
}
}


遍历path目录下的文件(包括子目录中的),方法二
public void FindFile(string dir)   //参数为指定的目录  
{       
DirectoryInfo Dir=new DirectoryInfo(dir);  
try 
{  
foreach(DirectoryInfo d in Dir.GetDirectories())//查找子目录     
{
FindFile(dir+d.ToString()+"\\");  
targetFile.Add(dir+d.ToString()+"\\");