C# 遍歷文件夾篩選目標文件


 有近400G的數據,首先需要寫程序把目標文件標准化名稱(相當耗時,各種情形,間接說明在數據采集過程中標准化操作的重要性,這樣會給后續處理帶來很多不必要的麻煩和消耗)

網上找了個方法還不錯,還有一種遞歸的寫法。

目前不再追求什么事無巨細,凡是能快速實現即可。正所謂好鋼用在刀刃上。

方法一:

public List<string> FindFile2(string sSourcePath)
{

List<String> list = new List<string>();

//遍歷文件夾

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<String> list = new List<string>();
public List<string> FindFile(string sSourcePath )
{
//在指定目錄及子目錄下查找文件,在list中列出子目錄及文件
DirectoryInfo Dir = new DirectoryInfo(sSourcePath);
DirectoryInfo[] DirSub = Dir.GetDirectories();
if (DirSub.Length <= 0)
{
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;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM