由于也是刚刚倒腾目前的项目,所以对于系统存储的读取还有些不熟悉,但是对于这些问题,网上还是有不少的资料可以参考的,所以遇到后压力都不要太大。下面我就根据在网上查找的资料和结合自己的实际情况谈谈读取储存的实现吧,如果是在终端的话就更加的简单了,只需要 df -h便OK了。所以是在QT里呢,也不是很难,下面就是穷实现的代码,希望对有需要的同学有所帮助:
struct statfs diskInfo;
statfs((QString("/")).toUtf8().data(), &diskInfo);
qDebug("%s 总大小:%.0lfMB 可用大小:%.0lfMB",(QString("/")).toStdString().c_str(),
(diskInfo.f_blocks * diskInfo.f_bsize)/1024.0/1024.0,
(diskInfo.f_bavail * diskInfo.f_bsize)/1024.0/1024.0);
ui->label_6->setText((QString::number(((diskInfo.f_blocks * diskInfo.f_bsize)/1024.0/1024.0),10, 1))+"MB");
ui->label_10->setText((QString::number(((diskInfo.f_bavail * diskInfo.f_bsize)/1024.0/1024.0),10, 1))+"MB");
ui->label_9->setText((QString::number((((diskInfo.f_blocks * diskInfo.f_bsize)/1024.0/1024.0)-
(diskInfo.f_bavail * diskInfo.f_bsize)/1024.0/1024.0),10, 1))+"MB");