8

No such file or directory出于某种原因,即使我已将路径转换为文档路径,fopen 也会出现错误。

NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [docsPath stringByAppendingPathComponent:filename];

我使用该方法传递 NSStringUTF8String并且仅在读取模式下打开

if ((fh=fopen(filename, "r+b")) == NULL){
    perror("fopen");
    return -1;
}

尝试打开文件名时打印出以下完整路径(我删除了应用程序实际目录名称的确切值)

/var/mobile/Applications/#####/Documents/testImages.pak

为什么 fopen 检测不到文件?我已将其添加到目标中,甚至尝试将文件检查器中的位置设置更改为Relative to GroupRelative to Project

4

1 回答 1

11

您必须使用以下方法将 NSString 转换为 char*,否则它将无法正确映射到文件系统。

    char const *path_cstr = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:pathString];

现在您可以直接在 fopen() 中使用它。

于 2012-05-20T06:02:50.687 回答