Qt递归查找所有指定后缀名的文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Chorzen/article/details/82831868
// input: findPath: 指定文件夹 
//	  format: 指定格式
//	  receiveFilePath: 存储所有指定后缀名文件的路径(绝对路径+文件名)
bool MainWindow::GetAllFormatFilePath(QString &findPath, QString format = "*.txt", \
				QList<QString>& receiveFilePath)
{
    QDir *dir = new QDir(findPath);
    if(!dir->exists())
        return false;

    QStringList filter;
    filter << format;

    QList<QFileInfo> *dirInfoList = new QList<QFileInfo>(dir->entryInfoList(QDir::Dirs));
    QList<QFileInfo> *fomatInfoList = new QList<QFileInfo>(dir->entryInfoList(filter));

    for (int i = 0; i < dirInfoList->count(); i++) {
        if(dirInfoList->at(i).fileName() == "." || dirInfoList->at(i).fileName() == "..")
            continue;
        QString dirTmp = dirInfoList->at(i).filePath();
        GetAllFormatFilePath(dirTmp, format, receiveFilePath);
    }
    for (int i = 0; i < fomatInfoList->count(); i++) {
        receiveFilePath << fomatInfoList->at(i).filePath();
    }
    delete dirInfoList;
    delete dir;
    return true;
}

猜你喜欢

转载自blog.csdn.net/Chorzen/article/details/82831868