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.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类的相关问题,请大神指导!!很急!!!!请相助!!!的主要内容,如果未能解决你的问题,请参考以下文章