直接上代码:
QString GetFileSize(qint64 size){
if (!size) {
return "0 Bytes";
}
static QStringList SizeNames;
if(SizeNames.empty()){
SizeNames << " Bytes" << " KB" << " MB"
<< " GB" << " TB" << " PB" << " EB" << " ZB" << " YB";
}
int i = qFloor(qLn(size) / qLn(1024));
return QString::number(size*1.0/qPow(1024, qFloor(i)),
'f', (i > 1) ? 2 : 0 ) + SizeNames.at(i);
}
上述代码需要引入 Qt 类文件:
#include <QStringList>
#include <QtMath>
测试程序的代码:
#include <QCoreApplication>
#include <QStringList>
#include <QtMath>
#include <QDebug>
QString GetFileSize(qint64 size){
if (!size) {
return "0 Bytes";
}
static QStringList SizeNames;
if(SizeNames.empty()){
SizeNames << " Bytes" << " KB" << " MB"
<< " GB" << " TB" << " PB" << " EB" << " ZB" << " YB";
}
int i = qFloor(qLn(size) / qLn(1024));
return QString::number(size*1.0/qPow(1024, qFloor(i)),
'f', (i > 1) ? 2 : 0 ) + SizeNames.at(i);
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Test size 800000000 byte is "
<< GetFileSize(800000000);
return a.exec();
}
示例的显示结果:
显示结果