【发布时间】:2017-07-17 21:04:46
【问题描述】:
我在 iOS 上使用 Qt 应用程序 并希望将文件保存到 应用程序的私有目录 以便其他应用程序无法访问我的文件。阅读数据容器下的文档here、/Documents 目录看起来是保存我的应用程序私有文件的路径。
首先我选择使用返回的QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)
/var/mobile/Containers/Data/Application/123XX-XXXX-XXXX-XXXX/Library/Application Support/MyApp。但后来我发现我无法在那里创建任何文件。在 App 文件夹中也尝试了/Documents。但徒劳无功。
其次我尝试了QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),它返回了/var/mobile/Containers/Data/Application/123XX-XXXX-XXXX-XXXX/Documents。我可以在这里创建和保存我的文件。
在 iOS 上,哪个是创建应用程序私有文件的正确路径?
如何使用 Qt 获取路径?
以123XX-XXXX-XXXX-XXXX命名的目录,这是应用程序目录还是同一目录内的Library/Application Support/MyApp?
【问题讨论】:
-
你试过
"./",当前工作目录吗?这就是我在 Android 中做同样的事情的方式。由于应用是沙箱化的,所以应用启动的目录可能在应用文件沙箱内。 -
原来
QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)返回了应用程序文件夹,但我必须在 ios 上将/Documents添加到它,正如我所说。 但最重要的学习是,如果路径不存在,我会使用QDir::mkpath创建它,就像全新安装一样。我正在尝试mkdir未能创建任何文件夹。似乎QDir::mkpath比使用其他任何东西来创建文件夹要好。我现在可以将它保存在 ios 和 android 的应用沙箱中