gpt4 book ai didi

c++ - [Qt][Linux] 列出驱动器或分区

转载 作者:太空狗 更新时间:2023-10-29 23:52:12 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com