【发布时间】:2014-02-19 13:35:54
【问题描述】:
我试图在 Mac OS X 上打开一个 tga 文件,我花了过去一个小时来处理这个问题,但没有运气。 我只是想打开一个 tga 文件。 这是我迄今为止尝试过的,
int filedesc = open("/Users/x2am/Desktop/1177.tga", O_RDONLY);
if(filedesc < 0)
printf("%s ",strerror(errno));
输出>不允许操作
FILE* fp = fopen("/Users/x2am/Desktop/1177.tga", "rb");
if(fp == NULL) printf("file not loaded");
输出>文件未加载
filename = L"/Users/x2am/Desktop/1177.tga";
std::string narrow(filename.begin(), filename.end());
fstream file(narrow.c_str(), ios::in | ios::binary);
if (!file.good()) printf("file not loaded");
输出>文件未加载
考虑到 open() 的输出,不知何故不允许该操作。
这是我在图像上执行的获取信息。
应用已被沙盒化,
现在我想我已经尽力了。有什么看不见的东西出现在我面前吗?非常感谢任何帮助:)
【问题讨论】:
-
应用程序是否被沙盒化?
-
是的。它是沙盒的。我将使用构建设置中沙盒页面中的文件访问列表更新问题。
-
IIRC,沙盒应用程序只能访问用户通过文件对话框明确允许的文件。
-
可以把文件放到容器目录下,也可以用finder打开一次,保存访问权限。在这里阅读:developer.apple.com/library/mac/documentation/Security/…
-
@molbdnilo,我试图打开的 tga 文件是在运行时从 ftp 服务器下载的。那么,除了禁用沙盒之外,我还能打开文件吗?