如何确定 Qt 中驱动器上有多少可用空间?
我正在使用 Qt,并且想要一种独立于平台的方式来获取可用的可用磁盘空间。
我知道在 Linux 中我可以使用 statfs
,在 Windows 中我可以使用 GetDiskFreeSpaceEx()
。我知道boost有办法,boost::filesystem::space(Path const & p)
。
但我不想要那些。我在 Qt 中,想以 Qt 友好的方式来做。
我查看了QDir
、QFile
、QFileInfo
——什么也没有!
I'm using Qt and want a platform-independent way of getting the available free disk space.
I know in Linux I can use statfs
and in Windows I can use GetDiskFreeSpaceEx()
. I know boost has a way, boost::filesystem::space(Path const & p)
.
But I don't want those. I'm in Qt and would like to do it in a Qt-friendly way.
I looked at QDir
, QFile
, QFileInfo
-- nothing!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我知道这是一个很老的话题,但有人仍然会发现它很有用。
自 QT 5.4 起,
QSystemStorageInfo
已不再使用,取而代之的是一个新的类QStorageInfo
,它使整个任务变得非常简单,并且是跨平台的。I know It's quite old topic but somebody can still find it useful.
Since QT 5.4 the
QSystemStorageInfo
is discontinued, instead there is a new classQStorageInfo
that makes the whole task really simple and it's cross-platform.Qt 5.4 中引入的新 QStorageInfo 类可以做到这一点(以及更多)。它是 Qt Core 模块的一部分,因此不需要额外的依赖项。
The new QStorageInfo class, introduced in Qt 5.4, can do this (and more). It's part of the Qt Core module so no additional dependencies required.
我在写问题时写了这篇文章(在 QTBUG-3780 投票后) );我想我可以让某人(或我自己)免于从头开始做这件事。
这是针对 Qt 4.8.x 的。
用法:
I wrote this back when I wrote the question (after voting on QTBUG-3780); I figure I'll save someone (or myself) from doing this from scratch.
This is for Qt 4.8.x.
Usage:
在撰写本文时,Qt 中还没有任何内容。
考虑对 QTBUG-3780 发表评论或投票。
There is nothing in Qt at time of writing.
Consider commenting on or voting for QTBUG-3780.
我需要写入已安装的 USB 记忆棒,并使用以下代码获取可用内存大小:
I need to write to a mounted USB-Stick and I got the available size of memory with the following code:
我知道这个问题现在已经很老了,但是我搜索了 stackoverflow 并发现没有人找到解决方案,所以我决定发布。
QtMobility中有QSystemStorageInfo类,它提供了跨平台的方式来获取有关逻辑驱动器的信息。例如:逻辑驱动器()返回路径列表,您可以将其用作其他方法的参数:availableDiskSpace()、totalDiskSpace()来获取相应的可用空间和总驱动器空间(以字节为单位)。
使用示例:
此示例打印操作系统中所有逻辑驱动器的可用空间和总空间(以字节为单位)。不要忘记在 Qt 项目文件中添加 QtMobility:
我在我现在正在处理的项目中使用了这些方法,并且它对我有用。希望它能帮助别人!
I know that this question is already quite old by now, but I searched stackoverflow and found that nobody got solution for this, so I decided to post.
There is QSystemStorageInfo class in QtMobility, it provides cross-platform way to get info about logical drives. For example: logicalDrives() returns list of paths which you can use as parameters for other methods: availableDiskSpace(), totalDiskSpace() to get free and total drive's space, accordingly, in bytes.
Usage example:
This example prints free and total space in bytes for all logical drives in OS. Don't forget to add QtMobility in Qt project file:
I used these methods in a project I'm working on now and it worked for me. Hope it'll help someone!
这段代码对我有用:
this code`s working for me: