获取文件夹中的文件
原创
©著作权归作者所有:来自51CTO博客作者wellwy的原创作品,如需转载,请与作者联系,否则将追究法律责任
BOOL GetFileInFolder(LPCTSTR pFolder, LPCTSTR pFilter, bool bSubFolder,
std::vector<string> &vecFilename)
{
if (!pFolder || !PathFileExists(pFolder))
{
return FALSE;
}
vecFilename.clear();
string strFolder = pFolder;
if(*(strFolder.end()-1) != _T('\\'))
strFolder += _T("\\");
if(!pFilter) pFilter = _T("*.*");
const string strFindFileName = strFolder + pFilter;
WIN32_FIND_DATA wfd;
RtlZeroMemory(&wfd, sizeof(wfd));
HANDLE hFind = FindFirstFile(strFindFileName.c_str(), &wfd);
if(hFind == INVALID_HANDLE_VALUE) return false;
BOOL bNext = TRUE;
while(bNext) {
string strFound = strFolder+wfd.cFileName;
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
if(!bSubFolder || _tcscmp(wfd.cFileName, _T(".")) == 0 || _tcscmp(wfd.cFileName, _T("..")) == 0) {
bNext = FindNextFile(hFind, &wfd);
continue;
}
std::vector<string> vecTemp;
if(GetFileInFolder(strFound.c_str(), pFilter, bSubFolder, vecTemp) && !vecTemp.empty())
vecFilename.insert(vecFilename.end(), vecTemp.begin(), vecTemp.end());
bNext = FindNextFile(hFind, &wfd);
continue;
}
vecFilename.push_back(strFound);
bNext = FindNextFile(hFind, &wfd);
}
if(hFind != INVALID_HANDLE_VALUE)
FindClose(hFind);
return true;
}
下一篇:打开文件通用对话框

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C++读取文件夹中所有文件的路径,包含子文件夹
C++读取文件夹中所有文件的路径,包含子文件夹 C++实现指定文件夹的路径,获取该路径下所有文件的路径,含子文件夹
读取所有文件的路径 获取所有文件的路径 获取指定路径的所有文件 #include 搜索 -
python 得到文件路径 python获取文件夹路径
代码及注释如下
文件名 当前目录 文件路径