查找文件夹内所有文件

举报
清雨小竹 发表于 2022/09/25 02:03:12 2022/09/25
961 0 0
【摘要】 void CTestDlg::OnButton1()   {CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,"所有文件(*.*)|*.*", NULL/*AfxGetMainW...
void CTestDlg::OnButton1()   
{

CFileDialog   mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
"所有文件(*.*)|*.*",   NULL/*AfxGetMainWnd()*/);

if(mFileDlg.DoModal()==IDOK)
{
CString   strPathName=mFileDlg.GetPathName();
CString strDir =   strPathName.Left(strPathName.ReverseFind('\\'));
std::vector<CString>   vecFile;
OnTraverseFolder( strDir,vecFile );
} // 这段是找路径的
}
void CTestDlg::OnTraverseFolder(const CString&   strDir,std::vector<CString>& vecFile) //这段是读取文件夹内所有文件的     
{
WIN32_FIND_DATA FindFileData;
CString strDirTmp;
strDirTmp =   strDir;
strDirTmp += "\\*.*";
HANDLE   hFind=::FindFirstFile(strDirTmp,&FindFileData);
if(INVALID_HANDLE_VALUE   ==   hFind)
{
return;
}
while(TRUE)
{
if(FindFileData.dwFileAttributes   & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!=   _T('.'))
{
strDirTmp = strDir;
strDirTmp += "\\";
strDirTmp +=   FindFileData.cFileName;
OnTraverseFolder(strDirTmp,vecFile)   ;
}
}
else
{
strDirTmp = strDir;
strDirTmp +=   "\\";
strDirTmp +=   FindFileData.cFileName;
vecFile.push_back(strDirTmp);
}
if(!FindNextFile(hFind,&FindFileData))   break;
}
FindClose(hFind);
}
  

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8265392

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。