大家好,我目前就职于一家工业制造公司,我的email是wuxfei@gmail.com,工作近3年时间了。
有时设备与客户系统交互时,需要遍历文件夹下的文件,当发现有文件时,则读取文件做相应的处理。遍历文件其实不难,但每次写起来有点繁琐,所以自己整了一个函数,作为自己以后编程的一个API。
能力有限,时间仓促,诚邀大侠指点。
/************************************************************************\
* 返回:返回值:遍历找到的文件数目;arrFileList所有文件路径;
* 输入:strFolder为目标文件夹;bTraverSub是否遍历子文件夹;
* 注意:调用函数前,先清空文件列表。
\************************************************************************/
int TraverseFolder(CString strFolder, CStringArray &arrFileList, bool bTraverSub=false)
{
if (strFolder.Right(1)!=_T("\\"))
{
strFolder += _T("\\");
}
CFileFind finder;
BOOL bWorking = finder.FindFile(strFolder+_T("*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
//遍历子文件夹
if (finder.IsDirectory() && !finder.IsDots() && bTraverSub)
{
TraverseFolder(finder.GetFilePath(), arrFileList, bTraverSub);
} //文件
else if (!finder.IsDirectory() && !finder.IsDots())
{
arrFileList.Add(finder.GetFilePath());
}
}
return arrFileList.GetSize();
}