我的项目中有一个简单的.txt文件,可以从Xcode中成功打开该文件。 当我存档应用程序时,文件加载失败使应用程序崩溃。 我在与文本文件相同的文件夹中有其他“资产”,这些文件没有问题。
FILE *fp;
if (!(fp=fopen("highScores.txt", "r")))
{
fprintf(stderr,"\nfailed to open file:%s\n","highScores.txt");
exit(0);
}
在.app产品中,文本文件与其他资产一起位于“资源”文件夹中。
谢谢
答案 0 :(得分:0)
当我在MacOS上执行应用程序时,工作目录为/:-(
能够读取与应用程序一起安装的文件的一种方法是使用相对于可执行文件路径的路径进行读取。要知道正在运行的可执行文件的路径,只需使用getpid
和proc_pidpath
:
#include <unistd.h>
#include <libproc.h>
...
char path[PROC_PIDPATHINFO_MAXSIZE];
if (proc_pidpath(getpid(), path, sizeof(path)) > 0) {
/* here path contains the path of the executable, for instance
/Applications/.../xxx.app/Contents/MacOS/xxx */
}