如何使用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/