Linux 获取QT中的磁盘类型

Linux 获取QT中的磁盘类型,linux,windows,qt,Linux,Windows,Qt,我想获得QT中的磁盘类型(SSD或HDD)。我已经检查了QStorageInfo,但找不到任何有用的东西。顺便说一下,我需要一个在Windows和Linux上都能工作的解决方案。对于Linux,您可以通过读取特殊文件来判断内核是否检测到SSD磁盘 /sys/block/<disk>/queue/rotational /sys/block//queue/rotational 例如,如果sda磁盘是HDD,cat/sys/block/sda/queue/rotational写入1,如

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

对于Linux,您可以通过读取特殊文件来判断内核是否检测到SSD磁盘

/sys/block/<disk>/queue/rotational
/sys/block//queue/rotational
例如,如果sda磁盘是HDD,
cat/sys/block/sda/queue/rotational
写入
1
,如果sda磁盘是SSD,
0

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


对于可移植性,我高度怀疑这种依赖于系统的信息是否能够以可移植的方式提供。您必须根据当前目标使用
#ifdef
/
#else
/
#endif
宏来选择实现。

“我非常怀疑这种依赖于系统的信息是否可移植”是的,这是真的。就我所知,即使是号称是多平台的Java,也没有提供这种方式。MacOS(这里不需要)也有自己的方式。