gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 19:37:46 25 4
gpt4 key购买 nike

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

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

EDIT2:刚刚意识到我所做的一个明显假设使我之前的 EDIT 无效。如果我尝试使用 CFileFind 进行递归搜索,我必须使用 *.* 作为我的通配符,否则子目录将不会匹配并且不会发生递归。因此,无论如何都必须单独处理对不同文件扩展名的过滤。

最佳答案

使用 CFileFind .

看看这个example来自 MSDN:

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/916973/

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