从标准 C++ 代码访问 iPhone 的沙箱文档文件夹

Access iPhone's sandbox Document folder from standard C++ code

我正在通过 QtCreator 部署 iphone 应用程序。我想使用标准 C++ 库创建一个简单的文件。我尝试在沙盒文档文件夹中执行此操作。

我编译了boost,所以我用这个库来检查sandbox Document文件夹是否存在

我的应用程序在 /private/var/mobile/Containers/Bundle/Application/<UUID>/<application name>.app 开始。然后,我只是尝试访问 /private/var/mobile/Containers/Bundle/Application/<UUID>/<application name>.app/../Documents 文件夹(使用 boost::filesystem::is_directorty),因为它不存在,我尝试创建它(使用 boost::filesystem::create_directories),但它失败了(boost 引发异常).

我做错了吗?我不在正确的道路上吗?或者我是否必须为我的应用程序设置任何特殊权限才能执行此操作(至于 Android,我添加到我的应用程序清单中的列表 EXTERNAL_STORAGE)。

我的文档路径错误。可以使用 Qt 找到好的 API:

QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);

这个returns:

/var/mobile/Containers/Data/Application/<another UUID>/Documents

(与我在 /private/var/mobile/Containers/Bundle/Application 中尝试访问的不同)