qt中查看某一目录下所有文件大小

QCoreApplication获取信息
    qDebug() << QCoreApplication::applicationFilePath();//程序运行路径及名称
    qDebug() << QCoreApplication::applicationDirPath();//程序运行路径
    qDebug() << QCoreApplication::applicationPid();//程序进行id
    qDebug() << QCoreApplication::applicationName();//程序名称
    //qDebug() << QDir::currentPath();
创建文件相关

    QString strDirPath = QCoreApplication::applicationDirPath();
    strDirPath += "/myFolder";
    //判断文件夹是否存在
    QFileInfo fileInfo(strDirPath);
    if(!fileInfo.exists()){//不存在则创建
        QDir dir("");
        bool res = dir.mkpath(strDirPath);
        qDebug() << "res:" << res;
    }
    QString fileName = strDirPath + "/test.txt";
    //保存QByteArray
    QFile file(fileName);
    bool delOld = false;//是否删除之前的文件,不删除直接在最后追加
    if(delOld){
        if(!file.open(QFile::WriteOnly | QFile::Truncate)){
            qDebug() << "open error!";
            return 0;
        }
    }else{
        if(!file.open(QFile::ReadWrite)){
            qDebug() << "open error!";
            return 0;
        }
    }
    QByteArray byteArr = "hello,world!!";
    qint64 ret = -1;
    //写入byteArr到文件
    file.seek( file.size() );
    ret = file.write( byteArr );
    qDebug() << ret;
    file.close();
    //QFile::remove(fileName);//删除文件

查看所有文件大小
#include <QDir>

qint64 GetDirSize(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;
}

查看指定目录指定类型的文件
    #include <QDirIterator>
	#include <QString>
	#include <QDebug>
	
	QString strDir = "D:/tools";
    QString strFilter = "*.exe|*.msi";
    QDirIterator dirIterator(strDir, strFilter.split("|"), QDir::Files);
    while(dirIterator.hasNext()){
        qDebug() << (dirIterator.next());
    }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力减肥的小胖子5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值