QT递归搜索文件(entryList)

QStringList test111111::findFiles(const QString &startDir, QStringList filters)
{
QStringList names;
QDir dir(startDir);

//搜索当前目录符合条件的文件
foreach (QString file, dir.entryList(filters, QDir::Files))
names += startDir + '/' + file;

//搜索当前目录的子目录符合条件的文件
foreach (QString subdir, dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot))
names += findFiles(startDir + '/' + subdir, filters);

return names;
}
函数调用举例:

QStringList files = findFiles("./", QStringList() << "*.cpp" << "*.h");
搜索当前目录 ./ 及其子目录下的.cpp文件和.h文件。

原文地址:https://www.cnblogs.com/LuckCoder/p/10879523.html