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

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

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

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

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

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

时间:原作者:0个回答

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";
}
原作者:
...