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 

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;
}

你可能感兴趣的:(Qt)