CFileFind finder;
vector<CString> allfile;//创建字符串容器
vector<CString> getfile;
bool bworking = finder.FindFile(L"I:\\testpicture\\*.*");//查询该文件夹下的所有图片
while (bworking)
{
bworking = finder.FindNextFile();
allfile.push_back(finder.GetFileName());//得到所有文件,文件夹的名称,存在allfile字符串容器里面
}
for (int i=0; i<allfile.size(); i++)//从allfile字符串容器中过滤出".bmp"后缀的文件
{
int flag = allfile[i].Find(L".bmp");
if (flag>=0)
{
getfile.push_back(allfile[i]);//将后缀符合要求的文件写到getfile字符串容器里面
}
}
finder.Close();
在WIN32下可以用下面的代码:
HANDLE hFile;
LPCTSTR lpFileName = L".\\*.*"; //指定搜索目录和文件类型,如搜索d盘的音频文件可以是”D:\.mp3”
WIN32_FIND_DATA pNextInfo; //搜索得到的文件信息将储存在pNextInfo中;
hFile = FindFirstFile(lpFileName, &pNextInfo);//请注意是 &pNextInfo , 不是 pNextInfo;
if (hFile == INVALID_HANDLE_VALUE)
{
//搜索失败
exit(-1);
}
while (FindNextFile(hFile, &pNextInfo))
{
if (pNextInfo.cFileName[0] == '.')//过滤.和..
continue;
string sRet = ws2s(pNextInfo.cFileName);//wchar_t转string
cout << sRet << endl;
}