您的位置:首页 > 编程语言

windows编程使用递归方法遍历文件的方法

2012-09-25 10:19 447 查看
在论坛经常碰到初学者不知道如何遍历文件,其实很简单,只要使用下面的代码就可以了。

void ChkRecurse(LPCTSTR pstr /* = NULL */)
{

CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");

// start working for files
BOOL bWorking = FALSE;
try
{
bWorking = finder.FindFile(strWildcard);
}
catch (CException* e)
{
char szCause[255] = {0};
e->GetErrorMessage(szCause, 255);
Log->LogOutEx(szCause);
}

while (bWorking)
{
try
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots()) // '.' and '..'
continue;
if (finder.IsSystem())// 系统文件
continue;
else if (finder.IsDirectory()) //目录
{
CString str = finder.GetFilePath();
CString str1;
GetDirName(str,str1);
if ( str1.GetLength() == 12 && _is_num(str1) )
{
ChkRecurse(str);//回调
}
else
{
Sleep(20);
continue;
}
}
else
{//检查文件
//Do your work...
}
}
catch (CException* e)
{
char szCause[255] = {0};
e->GetErrorMessage(szCause, 255);
Log->LogOutEx(szCause);
}
}
finder.Close();
}
有不明白的地方欢迎评论、留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息