//遍历寻找指定路径下所有文件
string getFileFromFolder(char* Path)
{
char szFind[MAX_PATH];
WIN32_FIND_DATA FindFileData;
string ret;
strcpy(szFind, Path);
strcat(szFind, "\\*.*");
HANDLE hFind = FindFirstFile(szFind, &FindFileData);
if (INVALID_HANDLE_VALUE == hFind){
cout << "找不到路径" << endl;
return;
}
do{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
if (strcmp(FindFileData.cFileName, ".") != 0 && strcmp(FindFileData.cFileName, "..") != 0){
//递归子目录
char szFile[MAX_PATH] = { 0 };
strcpy(szFile, Path);
strcat(szFile, "\\");
strcat(szFile, FindFileData.cFileName);
getFileFromFolder(szFile);
}
}
else{
char filename[MAX_PATH]{0};
//拼接文件完整路径
strcpy(filename, Path);
strcat(filename, "\\");
strcat(filename, FindFileData.cFileName);
ret = filename;
}
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
return ret;
}
!!!注意!!!
此前因为字符集使用的是Unicode,所以一直无法输出正确结果,经修改为“未设置”后正常。