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

Posted

技术标签:

【中文标题】在 qt 中使用 QFile.open 和 Qdir 将文件保存在特定目录中【英文标题】:Save file in a specific dir with QFile.open and Qdir in qt 【发布时间】:2014-03-03 15:30:57 【问题描述】:

我试图用 QFile.open() 在 qt creator 中创建/保存一个文件。 但它总是在应用程序的构建文件夹中创建/保存文件。 我已经尝试使用此代码将目录更改为我的目录,该目录位于我的源/头文件所在的目录中。

QDir::setCurrent("/ui");
file.setFileName("tmp.ui");

QDir::setCurrent("/main/ui");

if (file.open(QIODevice::ReadWrite))

    builder.save(&file, myDialog);

它创建文件 tmp,但不在正确的目录中。我想放相对目录。 知道我怎么能达到它吗?

【问题讨论】:

您永远不必更改进程的当前目录。根本没有必要。 【参考方案1】:

我认为您确实不需要更改当前目录。您可以在不更改当前目录的情况下生成文件的绝对文件路径:

QDir dir("/main/ui");
file.setFileName(dir.absoluteFilePath("tmp.ui"));

然而这似乎也毫无意义。你可以写file.setFilename("/main/ui/tmp.ui")

以“/”开头的路径是绝对路径。您确定文件系统根目录中有“/ui”或“/main”目录吗?这不太可能。尝试指定QDir 的有效绝对路径。如果要指定相对路径,将从初始当前目录(例如,可以是构建目录)开始搜索。

【讨论】:

以上是关于在 qt 中使用 QFile.open 和 Qdir 将文件保存在特定目录中的主要内容,如果未能解决你的问题,请参考以下文章

QFile.open 无法打开资源 qrc 中的文件

Qt学习五 - 对话框

QT软件开发之基础控件--2.1.6 buttonBox按钮盒

6.20

D3 - 设置类名的三元运算符

基础贴:教你在Linux中更改MAC地址