如何在 Linux 中使用 QT (QDir) 创建目录?
Posted
技术标签:
【中文标题】如何在 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) 创建目录?的主要内容,如果未能解决你的问题,请参考以下文章
Linux Qt中的QDir类的相关问题,请大神指导!!很急!!!!请相助!!!
在 qt 中使用 QFile.open 和 Qdir 将文件保存在特定目录中