递归遍历文件夹查找指定文件

       最近写了一个递归搜索一个文件夹下指定后缀名的所有文件的小例子,大家可以根据例子改动为自己所用。写下来的同时,也是为日后自己查着方便。

traversalfile.h
#ifndef TRAVERSALFILE_H
#define TRAVERSALFILE_H
#include <QtCore>
#include <QtGui>

class Traversalfile
{
public:
    Traversalfile();
    QList<QString> findfile(const QString &path);
};

#endif // TRAVERSALFILE_H
traversalfile.cpp
#include "traversalfile.h"
#include <QtCore>
#include <QtGui>
#include <QVariant>
#include <QDebug>

Traversalfile::Traversalfile()
{
}
QList<QString> Traversalfile::findfile(const QString &path)
{

    QList<QString> static pathlist;



    QDir dir(path);
//    if (!dir.exists())
//        return false;
    dir.setFilter(QDir::Dirs|QDir::Files);
    dir.setSorting(QDir::DirsFirst);

    QFileInfoList list = dir.entryInfoList();
    int i=0;
    do{
    QFileInfo fileInfo = list.at(i);
    if(fileInfo.fileName()=="."|fileInfo.fileName()=="..")
    {
    i++;
    continue;
    }

    bool bisDir=fileInfo.isDir();
    if(bisDir)
    {

        findfile(fileInfo.filePath());
    }
    else{

        if(fileInfo.suffix()=="json"){
           pathlist<<fileInfo.filePath();
           //qDebug()<<pathlist;

        }

    }
    i++;
    }while(i<list.size());

    return pathlist;

}

     以上这个例子是找出所有的json文件,并且把每个文件的地址传到pathlist里面,可以用pathlist.at(i)来对每一个进行操作。

你可能感兴趣的:(递归遍历文件夹查找指定文件)