#include <io.h> //_finddata_t的头文件
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
void findAllFile(const char* path,vector<string> &files,const char * format)
{
char newpath[200];
strcpy(newpath, path);
strcat(newpath, "\\*.*"); // 在目录后面加上"\\*.*"进行第一次搜索
int handle;
_finddata_t findData;
handle = _findfirst(newpath, &findData);
if (handle == -1) // 检查是否成功
return;
string p1;
string strFormat;
while (_findnext(handle, &findData) == 0)
{
if (findData.attrib & _A_SUBDIR)
{
if (strcmp(findData.name, ".") == 0 || strcmp(findData.name, "..") == 0)
continue;
strcpy(newpath, path);
strcat(newpath, "\\");
strcat(newpath, findData.name);
findAllFile(newpath,files,format);
}
else
{
p1 = findData.name;
p1 = p1.substr(p1.find_last_of('.'),p1.length());
strFormat = format;
transform(p1.begin(), p1.end(), p1.begin(), ::toupper);
transform(strFormat.begin(), strFormat.end(), strFormat.begin(), ::toupper);
if (strcmp(strFormat.c_str(),p1.c_str()) == 0)
{
p1 = path;
p1.append("\\");
p1.append(findData.name);
files.push_back(p1);
}
}
}
_findclose(handle); // 关闭搜索句柄
}
int main()
{
vector<string> filearr;
findAllFile("D:\\soui\\config",filearr,".H");
return 0;
}