我如何使用 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;
}
我机器上的输出:
("/", "/proc", "/sys", "/sys/fs/cgroup", "/sys/fs/fuse/connections", "/sys/kernel/debug", "/sys/kernel/security", "/dev", "/dev/pts", "/run", "/run/lock", "/run/shm", "/run/user", "/media/sf_C_DRIVE", "/media/sf_C_DRIVE", "/media/sf_D_DRIVE", "/run/user/ri/gvfs")
请注意,对于此文件,QFile::atEnd()
始终返回 true,因此我没有在我的代码中使用它。
QDir::Drives
为 4。它是枚举项的静态整数值,它不显示任何内容,在大多数情况下你不应该关心它。 QDir::drives()
在 Linux 上执行时只包含一项(对于根文件系统)。
关于c++ - [Qt][Linux] 列出驱动器或分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981955/