您的位置:首页 > 其它

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

2013-02-25 21:16 561 查看
最近写了一个递归搜索一个文件夹下指定后缀名的所有文件的小例子,大家可以根据例子改动为自己所用。写下来的同时,也是为日后自己查着方便。
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)来对每一个进行操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: