工控编程吧

标题: 上位机MFC如何查找文件 [打印本页]

作者: qq263946146    时间: 2019-8-1 12:49
标题: 上位机MFC如何查找文件
在一个文件夹内查找文件,其实就是对一个文件夹内全部文件进行递归查找,将每个文件名与我们要查看文件名对比。
递归查找文件,我们可使用两个函数FindFile,FindNextFile来实现。
例如 我们添加一个列表框IDC_FILELIST,添加一个按钮来触发查找
  1. void CDemoDlg::OnFindFile()
  2. {
  3.         CListBox* pListBox = (CListBox*)GetDlgItem(IDC_FILELIST);
  4.         pListBox->ResetContent();

  5.         //从当前目录开始查找文件
  6.         CString strFileName = _T(".");
  7.         Find(strFileName);
  8. }
复制代码
其中Find就是实现查找的功能函数
  1. void CDemoDlg::Find(LPCTSTR lpszFileName)
  2. {
  3.         CString strWildcard = lpszFileName;
  4.         strWildcard += _T("\\*.*");

  5.         CFileFind finder;
  6.         BOOL bFind = FALSE;

  7.         //查找文件
  8.         bFind = finder.FindFile(strWildcard);
  9.         while (bFind)
  10.         {
  11.                 //查找下一个文件
  12.                 bFind = finder.FindNextFile();

  13.                 //判断找到文件的是否包含"."或".."
  14.                 if (finder.IsDots())
  15.                 {
  16.                         continue;
  17.                 }

  18.                 //获得找到文件的名称
  19.                 if (finder.IsDirectory())
  20.                 {
  21.                         //找到文件的路径
  22.                         CString strFilePath = finder.GetFilePath();
  23.                         //递归查找文件
  24.                         Find(strFilePath);
  25.                 }

  26.                 //获得找到文件的名称
  27.                 CString strFileName = finder.GetFileName();

  28.                 CListBox* pListBox = (CListBox*)GetDlgItem(IDC_FILELIST);
  29.                 pListBox->AddString(strFileName);
  30.         }

  31.         //结束查找
  32.         finder.Close();
  33. }
复制代码
[MFC408]1[/MFC408]
[weixinlianxi]1[/weixinlianxi]






欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4