QT目录操作与文件系统(QDir类)

QDir类的使用

程序

#include <QCoreApplication>
#include <QDir>
#include <QStringList>
#include <QtDebug>

qint64 du(const QString path)
{
    QDir dir(path);
    qint64 size = 0;
    foreach(QFileInfo fileInfo,dir.entryInfoList(QDir::Files))//遍历目录下所有文件的信息,设置过滤器为文件
    {
        size += fileInfo.size();
    }
    foreach(QString subDir,dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot))//遍历目录下所有文件的名字,设置过滤器为目录
    {
        size += du(path+QDir::separator()+subDir);
    }
    char unit ='B';
    qint64 curSize=size;
    if(curSize>1024)
    {
        curSize/=1024;
        unit ='K';
        if(curSize>1024)
        {
            curSize/=1024;
            unit ='M';
            if(curSize>1024)
            {
                curSize/=1024;
                unit ='G';
            }
        }
    }
    qDebug()<<curSize<<unit<<"\t"<<qPrintable(path)<<endl;
    return size;
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QStringList args = a.arguments();
    QString path;
    /*获取文件路径*/
    if(args.count()>1)
    {
        path = args[1];
    }
    else
    {
        path = QDir::currentPath();
    }
    qDebug()<<path<<endl;
    du(path);

    return a.exec();
}

效果展示

在这里插入图片描述

发布了31 篇原创文章 · 获赞 3 · 访问量 273

猜你喜欢

转载自blog.csdn.net/weixin_44011306/article/details/105586455