Qt笔记-递归获取文件夹中文件(含过滤文件名)

代码如下:

#include <QCoreApplication>
#include <QDebug>
#include <QDir>

QStringList findFiles(const QString &startDir, const QStringList &filters){

    QStringList names;
    QDir dir(startDir);

    const auto files = dir.entryList(filters, QDir::Files);
    for(const QString &file : files){

        names += startDir + "/" + file;
    }

    const auto subdirs = dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot);
    for(const QString &subdir : subdirs){

        names += findFiles(startDir + "/" + subdir, filters);
    }

    return names;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QStringList files = findFiles("D:/Qt5.14", QStringList() << "*.cpp" << "*.h");
    qDebug() << files;

    return a.exec();
}

程序运行截图如下:

 

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页