C# 遍历文件夹筛选目标文件

2021-07-08 13:05

阅读:551

标签:file   arch   int   操作   get   筛选   ext   lld   find   

 有近400G的数据,首先需要写程序把目标文件标准化名称(相当耗时,各种情形,间接说明在数据采集过程中标准化操作的重要性,这样会给后续处理带来很多不必要的麻烦和消耗)

网上找了个方法还不错,还有一种递归的写法。

目前不再追求什么事无巨细,凡是能快速实现即可。正所谓好钢用在刀刃上。

方法一:

public List FindFile2(string sSourcePath)
{

List list = new List();

//遍历文件夹

DirectoryInfo theFolder = new DirectoryInfo(sSourcePath);

FileInfo[] thefileInfo = theFolder.GetFiles("*.BMP", SearchOption.TopDirectoryOnly);

foreach (FileInfo NextFile in thefileInfo) //遍历文件

list.Add(NextFile.FullName);


//遍历子文件夹

DirectoryInfo[] dirInfo = theFolder.GetDirectories();

foreach (DirectoryInfo NextFolder in dirInfo)
{

//list.Add(NextFolder.ToString());

FileInfo[] fileInfo = NextFolder.GetFiles("*.BMP", SearchOption.AllDirectories);

foreach (FileInfo NextFile in fileInfo) //遍历文件

list.Add(NextFile.FullName);
}

return list;
}

方法二:利用递归方法

List list = new List();
public List FindFile(string sSourcePath )
{
//在指定目录及子目录下查找文件,在list中列出子目录及文件
DirectoryInfo Dir = new DirectoryInfo(sSourcePath);
DirectoryInfo[] DirSub = Dir.GetDirectories();
if (DirSub.Length {
foreach (FileInfo f in Dir.GetFiles("*.*", SearchOption.TopDirectoryOnly)) //查找文件
{
list.Add(Dir + @"\" + f.ToString());
}
}
int t = 1;
foreach (DirectoryInfo d in DirSub)//查找子目录
{
FindFile(Dir + @"\" + d.ToString());
list.Add(Dir + @"\" + d.ToString());
if (t == 1)
{
foreach (FileInfo f in Dir.GetFiles("*.*", SearchOption.TopDirectoryOnly)) //查找文件
{
list.Add(Dir + @"\" + f.ToString());
}
t = t + 1;
}
}

return list;

}

C# 遍历文件夹筛选目标文件

标签:file   arch   int   操作   get   筛选   ext   lld   find   

原文地址:https://www.cnblogs.com/marszhw/p/9737598.html


评论


亲,登录后才可以留言!