C#遍历文件夹, 获取文件/目录信息

本文详细介绍了如何使用 C# 语言遍历目录下的所有文件及特定类型的文件,包括不包括子目录的情况,并提供了两种方法来实现这一目标。同时,文章还讨论了在 VS2008 版本以上支持的多类型文件获取方法,以及如何在包括子目录的场景下进行文件遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()+"\\");
}  
      foreach(FileInfo f in Dir.GetFiles("*.*")) //查找文件  
{  
targetFile.Add(Dir+f.ToString());  
}  
}  
catch(Exception e)  
{  
MessageBox.Show(e.Message);  
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值