{
char szFind[MAX_PATH];
WIN32_FIND_DATA FindFileData;
strcpy(szFind,lpPath);
strcat(szFind,"*.*");
HANDLEhFind=::FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;
while(TRUE)
{
if(FindFileData.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,lpPath);
strcat(szFile,"");
strcat(szFile,FindFileData.cFileName);
find(szFile);
}
}
else
{
cout <<FindFileData.cFileName;
}
if(!FindNextFile(hFind,&FindFileData)) break;
}
FindClose(hFind);
}
2.利用CFileFind類較簡潔的實現該功能
void CModelDlg::FindBmpFile(CString strFoldername)
{
CFileFindtempFind;
BOOL bFound;//判斷是否成功找到文件
bFound=tempFind.FindFile(strFoldername + "\\*.*"); /修改""內內容給限定查找文件類型
CStringstrTmp; //如果找到的是文件夾存放文件夾路徑
while(bFound) //遍歷所有文件
{
bFound=tempFind.FindNextFile();//第一次執行FindNextFile是選擇到第一個文件,以後執行爲選擇
//到下一個文件
if(!tempFind.IsDots()) continue; //如果找到的是返回上層的目錄 則結束本次查找
if(tempFind.IsDirectory()) //找到的是文件夾,則遍歷該文件夾下的文件
{
strTmp="";
strTmp=tempFind.GetFilePath();
FindFile(strTmp);
}
else
{
strTmp=tempFind.GetFileName(); //保存文件名,包括後綴名
// 在此處添加對找到文件的處理
}
}
tempFind.Close();
return;
}