在QT中获取磁盘类型

时间:2017-05-17 09:27:21

标签: linux windows qt

我想在QT中获得磁盘类型(SSD或HDD)。我已经检查了QStorageInfo,但我找不到任何有用的东西。顺便说一下,我需要一个适用于Windows和Linux的解决方案。

1 个答案:

答案 0 :(得分:3)

对于linux,您可以通过读取特殊文件

来判断内核是否检测到了SSD磁盘
/sys/block/<disk>/queue/rotational

例如,如果sda磁盘是HDD,cat /sys/block/sda/queue/rotational1,如果是SSD,则0\\.\PhysicalDrive<number>

对于Windows,您可以通过打开特殊文件\\.\PhysicalDrive0来打开驱动器,例如#ifdef。它可以与DeviceIOControl一起使用IOCTL_STORAGE_QUERY_PROPERTY IO控件来查询属性。似乎StorageDeviceSeekPenaltyProperty可能就是你所追求的,因为硬盘驱动器有寻求惩罚,而SSD没有。唉我现在没有Windows环境可以测试。

为了便于携带,我非常怀疑这种依赖于系统的信息是否可以通过便携方式获得。您必须使用#else / #endif / /(\b[\(|\{|\[|\«]+[\w\s]*[\)|\}|\]|\»]+)/g 宏来根据当前目标选择实施。