Mac应用程序的文件保存位置

时间:2011-07-11 13:08:46

标签: c++ ios macos std

我将我的iOS项目移植到Mac

我正在拯救几个文件,在iOS上,我将它保存在Documents /下的.app下,然而,通过MAC OSX,文件没有被创建

/Users/SMTH/Desktop/Development/SIO2 2/SIO2_SDK/tutorials/MyMacApp/macos/build/Debug/00_template.app/Contents/MacOS/../Documents/menustate.sav

使用

std::ofstream file;
file.open(fpath.c_str(), std::ios::out | std::ios::binary);
我正在做什么。错误。或者我无法像在iOS应用程序中那样保存在Mac OSX应用程序中(然后在MAC上保存?)

编辑:我也试过其他地方,比如 file.open("~/Documents/menustate.sav", std::ios::out | std::ios::binary);但仍然没有创建文件

唯一可行的道路是“./” - > “./menustate.sav”,将其保存到somepath / 00_template.app / Contents / Resources'但是为什么它可以保存到Resources,而不是其他地方?

谢谢

1 个答案:

答案 0 :(得分:1)

基本上你不应该像在OSX Apps中那样可以被多个用户使用,因此应用程序通常只能由安装程序存储,而不能由普通用户存储。

open调用是我假设通过unix open函数调用 - 如果是这样,请查看file.open的返回值,看看它是否为-1。如果是这样,那么看看全局变量errno,看看为什么它失败了。一个不错的C ++类将把它包装起来,以便在open打开的异常中给出错误。

对于MacOSX,请查看Apple where to put application files上的文档。