随手写的QT程序:文件大小转化可读字符串,整数转 B,KB,MB......

随手写的QT程序:文件大小转化可读字符串,整数转 B,KB,MB…

随手写的QT程序:文件大小转化可读字符串,整数转 B,KB,MB…

程序代码简单,就几句话,保留二位小数,可以自己改保留位数。

/
/// \brief readableFilesize
/// \param filesize
/// \return writer: icemen 2019.03.31. Huizhou City,China
/// 文件大小转换成可读的字符串,后加B,KB,....
QString readableFilesize( quint64 filesize)
{
    QStringList units;
    units << "B" << "KB" << "MB" << "GB" << "TB" << "PB";
    double mod  = 1024.0;
    double size = filesize;
    //qDebug() << size;
    int i = 0;
    long rest = 0;
    while (size >= mod && i < units.count()-1 )
    {
        rest= (long)size % (long)mod ;
        size /= mod;
        i++;
    }
    QString szResult = QString::number(floor(size));
    if( rest > 0)
    {
       szResult += QString(".") + QString::number(rest).left(2);
    }
    szResult += units[i];
    return  szResult;
}
//
/// 下面是例子:writer: icemen 2019.03.31. Huizhou City,China
/// qDebug() << readableFilesize(42000517331067);
/// qDebug() << readableFilesize(1200051733);
/// qDebug() << readableFilesize(15522272);
/// qDebug() << readableFilesize(123456);
/// qDebug() << readableFilesize(1201);
/// qDebug() << readableFilesize(1021);
/// qDebug() << readableFilesize(22223567842000517331067);
/// qDebug() << readableFilesize(567842000517331067);
/// qDebug() << readableFilesize(1024);
/// qDebug() << readableFilesize(1024*34);
/// qDebug() << readableFilesize(1024*1024*34);
/// qDebug() << readableFilesize(1024.0*1024*1024*34); // 注意 大整数计算时超过GB 应用浮数计算,否则无法得出正确答案。
/// qDebug() << readableFilesize(1024.0*1024*1024*1024*34 );

你可能感兴趣的:(QT编程)