HRESULT FindFile(CStdString directory, CStdString filename)//directory = _T("F:\\新建文件夹"),filename = _T("*.*") { HRESULT hr = E_FAIL; TCHAR tmpDirExpr[MAX_PATH] = {0}; memset(tmpDirExpr, 0, MAX_PATH * sizeof(TCHAR)); strcat(tmpDirExpr, directory); strcat(tmpDirExpr,_T("//*")); CStdString resultPath; WIN32_FIND_DATA FindFileData; HANDLE hFind=::FindFirstFile(tmpDirExpr,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) return hr; while(TRUE) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(FindFileData.cFileName[0]!='.') { TCHAR szFile[MAX_PATH]; strcpy(szFile, directory); strcat(szFile, "//"); strcat(szFile, FindFileData.cFileName); hr = FindFile(szFile, filename); } } else { //文件已找到,自定义操作 CStdString strFilename = FindFileData.cFileName;//strFilename存放的是文件名,包括后缀 } if(!FindNextFile(hFind,&FindFileData)) break; } FindClose(hFind); return hr; }