bool FindFilesInFolder(const string &inFolder, vector<string> &vecFiles)
{
using namespace std;
//首先判断此目录是否符合完整格式
string fromFolder = inFolder;
if(fromFolder.empty()){
return false;
}
if(fromFolder[fromFolder.length()-1] != '\\'){
fromFolder +="\\";
}
HANDLE hSearch;
WIN32_FIND_DATA fd;
string findPath = fromFolder + "*.*"; // //注意后面要有*.*
hSearch = FindFirstFile(findPath.c_str(), &fd);
//如果不成功,应该表明此路径有问题
if(INVALID_HANDLE_VALUE==hSearch)
{
cerr<<"FindFiles: ERROR NUMBER: "<<GetLastError()<<endl;
cerr<<"Some errors occured in FindFirstFile of " << fromFolder<<endl;
if(GetLastError()==ERROR_PATH_NOT_FOUND)
cout<<"The system cannot find the path specified!"<<endl;
return false;
}
//连续查找,处理完当前目录下所有文件
//beginwhile;采用do...while的形式是为了包含对第一个搜索项的处理
do
{
string fileName=fd.cFileName;
if(!(fileName=="."||fileName==".."))
{
string fullPath=fromFolder + fileName;//原文件的全路经
//将该文件移动到目标文件夹下,调用DOS命令
vecFiles.push_back(fullPath);
}
}while (FindNextFile(hSearch, &fd));
FindClose(hSearch);
return true;
}
C++查找找目录下的文件
最新推荐文章于 2022-12-14 16:57:51 发布