Linux Qt中的QDir类的相关问题,请大神指导!!很急!!!!请相助!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Qt中的QDir类的相关问题,请大神指导!!很急!!!!请相助!!!相关的知识,希望对你有一定的参考价值。

问题是:想将linux中的/dev目录中的video(如video0,video1等等)视频设备添加到dev_name_list的Qlist列表中,为何下面程序不能实现此功能????盼大神回答!!!!!感谢!!!
定义:QList<QString> dev_name_list;//用于存放设备名
程序:

QDir d("/dev");
if ( !d.exists() )
qDebug()<<"Cannot find the dev directory";
d.setFilter(QDir::Files);
d.setSorting(QDir::Name);
QFileInfoList list(d.entryInfoList());
for(int i = 0;i < list.size();++i)

QString s = list.at(i).fileName();
if(s.contains("video",Qt::CaseSensitive))

dev_name_list.append(s);


if(dev_name_list.isEmpty())

return -1;

要怎么修改才能实现此功能呢?

我这里不能尝试你改成 d.setFilter(QDir::AllDirs|QDir::Files | QDir::Hidden | QDir::NoSymLinks);
d.setSorting(QDir::Size | QDir::Reversed);试一下
参考技术A 估计权限不够

如何在 Linux 中使用 QT (QDir) 创建目录?

【中文标题】如何在 Linux 中使用 QT (QDir) 创建目录?【英文标题】:How to create a directory using QT (QDir) in Linux? 【发布时间】:2016-11-29 10:10:22 【问题描述】:

我一直在尝试在 Linux 的根目录中创建一个目录。但由于我对 Linux 平台不太熟悉,所以无法在 QT 中编写正确的程序。你能看看我的代码,告诉我我哪里做错了吗?

#include <QCoreApplication>
#include <QDebug>
#include <QDir>
#include <QString>

int main(int argc, char *argv[])

    QCoreApplication a(argc, argv);
QDir mDir;
QString mpath="/home/qtfile";
if (!mDir.exists(mpath))

    mDir.mkpath(mpath);
    qDebug() <<"Created";

else if (mDir.exists(mpath))

    qDebug() <<"Already existed";

else

    qDebug()<<"Directory could not be created";

return a.exec();

感谢您的时间和考虑

编辑:- 谢谢大家。现在这个问题解决了

【问题讨论】:

"/\home\qtfile" 应该是"/home/qtfile" 吗? @Angew 我想我试过了 我想你应该使用 mDir.mkdir 而不是 mkpath linux 的根目录通常仅限于 root 访问。更好的是在您的主路径中创建一个目录(这看起来像是您想要的操作)。 QStandardPaths::writableLocation(QStandardPaths::HomeLocation) 应该为您提供主路径。只需附加您想要的目录并根据需要创建它。 QDir mydir(path); mydir.mkpath(desiredpath); @SamratLuitel 有文档中提到的所有操作的示例,请参考这些。 【参考方案1】:

这可能是@SamratLuitel 在 cmets 中所写的访问权限问题。

因此,您可以尝试在适当的家庭位置试一试,例如:

const QString& homePath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
QDir dir(homePath);
if (dir.mkdir("somedir"))

    //success

【讨论】:

以上是关于Linux Qt中的QDir类的相关问题,请大神指导!!很急!!!!请相助!!!的主要内容,如果未能解决你的问题,请参考以下文章

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

Qt中与文件目录相关操作

QDir类及其用法总结

QT-用QDir非递归遍历子文件夹及其文件

6.1 QDir目录操作

QT开发(二十八)——QT常用类