1、获取exe所在的路径
char fName[FILENAME_MAX];
GetModuleFileName(NULL, fName, FILENAME_MAX);
*strrchr(fName, '\\') = '\0';
m_strProvinceFilePath = fName;
2、循环获取子文件夹的文件
WIN32_FIND_DATA FindFileData;
string m_strProvinceFilePath("D:\\MainLandAllFile\\*");
HANDLE hFind=::FindFirstFile(m_strProvinceFilePath.c_str(),&FindFileData);
if(INVALID_HANDLE_VALUE == hFind){
ERR("查看文件路径是否正确");
return FAILURE;
}
while(TRUE)
{
if((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&
(FindFileData.cFileName[0]!='.'))
{
size_t starpos = m_strProvinceFilePath.find_last_of("*");
string ProvinceFilePath = m_strProvinceFilePath.substr(0, starpos);
ProvinceFilePath.append(FindFileData.cFileName);
ProvinceFilePath.append("\\");
string BMPFilePath = ProvinceFilePath;
ProvinceFilePath.append("*.txt");
WIN32_FIND_DATA FileName;
HANDLE hFile=::FindFirstFile(ProvinceFilePath.c_str(),&FileName);
if(INVALID_HANDLE_VALUE == hFile)
{
ERR("查看文件路径是否正确,文件夹里面即为各省文件夹");
return FAILURE;
}do{
string FullPath = "";
FullPath.append(BMPFilePath).append(FileName.cFileName);
if (strstr(FullPath.c_str(), "_Sg.txt")){
continue;
}
clAllFilePath.push_back(FullPath);
}while(::FindNextFile(hFile,&FileName));
}
if(!FindNextFile(hFind,&FindFileData)){
break;
}
}
FindClose(hFind);