如何在 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-用QDir非递归遍历子文件夹及其文件

在 qt 中使用 QFile.open 和 Qdir 将文件保存在特定目录中

如何在 Qt 中获取 Linux 上 USB 驱动器的路径?

Qt 应用程序有意外的 QDir::currentPath

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