就文件系统而言,Unix/Linux中没有驱动器的概念(我不能担保MacOSX,但我会说它是相同的).最接近的东西可能是挂载点,但正常的应用程序不应该打扰它们,因为所有这些都已经在文件系统根目录下可用/(因此QDir::drives()你观察到的行为).
如果您真的想查看正在使用的挂载点,则可以解析mount命令的输出(不带任何参数),或者至少在Linux上解析/etc/mtab文件的内容.请注意,挂载点可以快速实现(循环设备,FUSE文件系统,网络共享......),所以,除非您的应用程序旨在管理它们,否则我不建议使用它们.
请记住,在Unix-y操作系统上,挂载点通常是系统管理员而不是最终用户的问题,除非我们谈到可移动媒体或瞬态网络共享.
编辑:在评论中澄清之后,在Linux上你应该使用getmntent或getmntent_r解析/etc/mtab文件的内容,从而得到所有挂载点和相应设备的列表.
之后的诀窍是确定要显示哪些(可移动?网络共享?).我知道这/sys/block/...可以帮助解决这个问题,但我不知道所有细节,所以你需要多挖一点.
例如,要检查/dev/sdd1(USB密钥)是否安装在/media/usb0/可移动设备上,您可以这样做(请注意我如何使用设备名称sdd,而不是分区名称sdd1):
$ cat /sys/block/sdd/removable
1
Run Code Online (Sandbox Code Playgroud)
与我的主硬盘相反:
$ cat /sys/block/sda/removable
0
Run Code Online (Sandbox Code Playgroud)
希望这能让你走上正轨.
| 归档时间: |
|
| 查看次数: |
7178 次 |
| 最近记录: |