gpt4 book ai didi

c++ - 使用C++ MFC进行递归文件搜索?

转载 作者:行者123 更新时间:2023-12-01 14:58:38 24 4
gpt4 key购买 nike

使用C++和MFC递归搜索文件的最干净方法是什么?

编辑:这些解决方案中的任何一种都提供通过一次使用多个过滤器的能力吗?我想我可以使用CFileFind筛选*。*,然后编写自定义代码以进一步筛选成不同的文件类型。有没有提供内置的多个过滤器(例如* .exe,*。dll)?

EDIT2:刚意识到我所做的一个显而易见的假设使我以前的EDIT无效。如果我尝试使用CFileFind进行递归搜索,则必须使用*。*作为通配符,因为否则子目录将不匹配,并且不会进行递归。因此,无论如何都必须分别处理对不同文件扩展名的筛选。

最佳答案

使用 CFileFind

看一下来自MSDN的example:

void Recurse(LPCTSTR pstr)
{
CFileFind finder;

// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");

// start working for files
BOOL bWorking = finder.FindFile(strWildcard);

while (bWorking)
{
bWorking = finder.FindNextFile();

// skip . and .. files; otherwise, we'd
// recur infinitely!

if (finder.IsDots())
continue;

// if it's a directory, recursively search it

if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
cout << (LPCTSTR) str << endl;
Recurse(str);
}
}

finder.Close();
}

关于c++ - 使用C++ MFC进行递归文件搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58704262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com