如何使用Qt列出驱动器或已挂载的分区?
我尝试使用:

foreach( QFileInfo drive, QDir::drives() )
       {
         qDebug() << "Drive: " << drive.absolutePath();
       }

但它只显示根驱动器。
我还注意到QDir::drives()的长度为1,但QDir::Drives为4。

最佳答案

您可以使用/etc/mtab文件获取安装点列表。

QFile file("/etc/mtab");
if (file.open(QFile::ReadOnly)) {
  QStringList mountpoints;
  while(true) {
    QStringList parts = QString::fromLocal8Bit(file.readLine()).trimmed().split(" ");
    if (parts.count() > 1) {
      mountpoints << parts[1];
    } else {
      break;
    }
  }
  qDebug() << mountpoints;
}

我的机器上的输出:



请注意,此文件的QFile::atEnd()始终返回true,因此我没有在代码中使用它。

根据文档,QDir::Drives为4。它是枚举项的静态整数值,不显示任何内容,在大多数情况下,您无需关心它。在Linux上执行时,QDir::drives()仅包含一项(对于根文件系统)。

关于c++ - [Qt] [Linux]列出驱动器或分区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16981955/

10-12 23:56