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

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

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)来对每一个进行操作。

转载于:https://my.oschina.net/jamesju/blog/110257

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值