gpt4 book ai didi

c++ - 在 mac 上执行 .app 时,fstream 和 qfile 不创建文件

转载 作者:行者123 更新时间:2023-11-30 05:05:51 28 4
gpt4 key购买 nike

我目前正在为 MacO 和 Windows 开发 Qt 应用程序。在这个应用程序中,我需要写入和读取一个文件。虽然已部署的应用程序在 Windows 和 Linux 上运行良好,但在 Mac 上却不行。目前有 3 种不同的“结果”。 (仅限 Mac)

  1. 当我使用 Qt Creator 运行应用程序时,文件会在同一个文件中创建和加载可执行文件所在的位置(在 .app/Contents/MacOS/)。
  2. 当我执行部署文件夹中的 .app 文件时,open() 失败
  3. 当我执行 exec(在 .app/Contents/MacOS/)时,文件被创建并加载到我的主目录中

没有错误消息或任何东西,它只是在情况 2 中什么都不做。我正在 Mac 上使用 Qt-Creator 4.5 和 Qt 5.10.0 在 MacOS High Sierra 10.13.2 上进行测试

我包括fstream导出:

std::ofstream csvExport;
csvExport.open("save.csv", std::ofstream::out);

导入

std::ifstream csvImport;
csvImport.open("save.csv", std::ifstream::in);

我在使用 QFile 时观察到相同的行为

最佳答案

当你说你必须写或读一个文件时,为什么不在一些有意义的地方创建这个文件,例如在 Documents\YourAppName 目录中?

而不是依赖于操作系统和 Qt 实现提供具有已知行为的有效路径。

您可以使用QStandardPathsQt 类来查找我的文档目录。所以你的目录可以是 QStandardPaths::DocumentsLocation

QDir pathToWrite( QStandardPaths::displayName(QStandardPaths::DocumentsLocation) + "YourAppName" );

这将始终为您提供定义的行为。

关于c++ - 在 mac 上执行 .app 时,fstream 和 qfile 不创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com