文件夹递归遍历
来源:互联网 发布:测熔点怎么处理数据 编辑:程序博客网 时间:2024/05/22 00:35
#include <iostream>#include <vector>#include <string>#include <windows.h>void find(const char* lpPath, std::vector<std::string>& fileList){ char szFind[MAX_PATH]; char szFile[MAX_PATH]; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"\\*.*"); HANDLE hFind=::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, fileList); } } else { fileList.push_back(FindFileData.cFileName); } if(!FindNextFile(hFind,&FindFileData)) { break; } } FindClose(hFind);}int main(){ std::vector<std::string> fileList; std::vector<std::string>::iterator iter; find("D:/develop", fileList); for (iter=fileList.begin(); fileList.end()!=iter;++iter) { std::cout << *iter << std::endl; } system("pause"); return 0;}