如何在Qt上获取Linux上USB驱动器的路径?

时间:2016-10-14 05:10:18

标签: c++ linux qt

我已经用Qt成功编译了libusb,现在可以在连接usb设备和断开连接时接收事件。

现在我需要获取目录的路径。在Windows下这似乎相当容易,因为我可以根据Qt documentation使用QDir::drives()

因此,对于Windows,它返回C:\,F:\等,我可以轻松地写入这些位置。

然而在Linux上,我只有USB PID and VID并且我不知道如何获得USB根的工作路径。我需要使用QFile

在那里写一些文件

是否存在通用的跨平台解决方案?

1 个答案:

答案 0 :(得分:5)

我发现这段代码完全符合我的需要:

foreach (const QStorageInfo &storage, QStorageInfo::mountedVolumes()) {

   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";
}

输出:

"/run"
name: ""
fileSystemType: "tmpfs"
size: 6748 MB
availableSize: 6729 MB
"/"
name: ""
fileSystemType: "ext4"
size: 64370 MB
availableSize: 22236 MB
"/run/lock"
name: ""
fileSystemType: "tmpfs"
size: 5 MB
availableSize: 5 MB
"/home"
name: ""
fileSystemType: "ext4"
size: 183169 MB
availableSize: 27305 MB
"/run/user/1000"
name: ""
fileSystemType: "tmpfs"
size: 6748 MB
availableSize: 6748 MB
"/media/superuser/Backups"
name: "Backups"
fileSystemType: "ext4"
size: 252113 MB
availableSize: 133173 MB
"/media/superuser/Data"
name: "Data"
fileSystemType: "ext4"
size: 732123 MB
availableSize: 694298 MB
"/media/superuser/BackupWD"
name: "BackupWD"
fileSystemType: "fuseblk"
size: 209713 MB
availableSize: 13144 MB
"/media/superuser/WDSpace"
name: "WDSpace"
fileSystemType: "fuseblk"
size: 790484 MB
availableSize: 582583 MB