Qt小项目(2):文件遍历

来源:互联网 发布:淘宝网官网电话 编辑:程序博客网 时间:2024/06/05 19:03
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/Artanis23/article/details/52205752

有些时候我们也许会需要遍历某个目录下的所有文件来寻找自己需要的信息。本文就通过撰写这样的项目,来实现遍历所有文件的目的。

首先创建一个控制台项目dirtest,

main.cpp如下:

#include <QCoreApplication>#include <QStringList>#include <QDir>#include <QtDebug>QString path="/users";//要遍历的目录,可以自行修改int num=0;//遍历文件个数QString display(qint64 size){//计算文件大小,把单位'B'转换成'K','M','G'等形式    char unit='B';    if(size>=1024){        unit='K';        size/=1024;        if(size>=1024){            unit='M';            size/=1024;            if(size>=1024){                unit='G';                size/=1024;            }        }    }    return QString::number(size)+unit;}void du(QDir dir,QString thispath){    foreach(QFileInfo temp,dir.entryInfoList(QDir::Files|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System)){//遍历dir目录下所有文件        num++;        QString subDir=temp.fileName();//subDir为遍历到的文件名        qDebug()<<QString::number(num)<<": "<<display(temp.size())<<"  "<<thispath+QDir::separator()+subDir;        //输出这是第几个文件,文件大小,以及路径    }    foreach(QString subDir,dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot|QDir::Hidden|QDir::System)){//遍历dir目录下所有的文件夹名字        QDir tempdir(thispath+QDir::separator()+subDir);//定义tempdir目录为遍历到的目录        du(tempdir,thispath+QDir::separator()+subDir);//进一步寻找,递归实现    }}int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);    QDir dir(path);//定义一个路径为path的dir    du(dir,path);//开始遍历    return a.exec();}
0 0
原创粉丝点击