c++ - 在Qt中,C++ 如何确定驱动器的可以用空间?

  显示原文与译文双语对照的内容
106 1

我正在使用Qt并希望一个独立的平台来获取可用的可用磁盘空间。

我知道在Linux中我可以使用 statfs,在 Windows 中我可以使用 GetDiskFreeSpaceEx() 。 我知道boost有某种方法 boost::filesystem::space(Path const & p)

但我不希望。 我在 Qt,想用Qt友好的方式来做。

我看了 QDirQFileQFileInfo --什么都没有 !

时间: 原作者:

130 3

我知道这个话题很旧,但还有人会觉得很有用。

由于 QT 5.4已经停止,取而代之的是新的类,使得整个任务变得非常简单,而且它是跨平台的。


QStorageInfo storage = QStorageInfo::root();



qDebug() <<storage.rootPath();


if (storage.isReadOnly())


 qDebug() <<"isReadOnly:" <<storage.isReadOnly();



qDebug() <<"name:" <<storage.name();


qDebug() <<"fileSystemType:" <<storage.fileSystemType();


qDebug() <<"size:" <<storage.bytesTotal()/1000/1000 <<"MB";


qDebug() <<"availableSize:" <<storage.bytesAvailable()/1000/1000 <<"MB";



代码已经从 QT 5.5文档文件中的示例复制。

71 0

Qt中引入的新 QStorageInfo 类可以执行这里任务。 它是Qt核心模块的一部分,所以不需要额外的依赖。


#include <QStorageInfo>


#include <QDebug>



void printRootDriveInfo() {


 QStorageInfo storage = QStorageInfo::root();



 qDebug() <<storage.rootPath();


 if (storage.isReadOnly())


 qDebug() <<"isReadOnly:" <<storage.isReadOnly();



 qDebug() <<"name:" <<storage.name();


 qDebug() <<"filesystem type:" <<storage.fileSystemType();


 qDebug() <<"size:" <<storage.bytesTotal()/1024/1024 <<"MB";


 qDebug() <<"free space:" <<storage.bytesAvailable()/1024/1024 <<"MB";


}



原作者:
...