问题
For some reason fopen gives the error No such file or directory
even though I have converted the path to the documents path.
NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *filePath = [docsPath stringByAppendingPathComponent:filename];
I pass the NSString using the UTF8String
method and only open in read mode with
if ((fh=fopen(filename, "r+b")) == NULL){
perror("fopen");
return -1;
}
The following full path is printed out when trying to open the filename(I removed the exact values for the applications actual dir name)
/var/mobile/Applications/#####/Documents/testImages.pak
Why would fopen not detect the file? I have added it to the target and even tried changing the location settings in the file inspector to Relative to Group
and Relative to Project
回答1:
You have to convert the NSString to a char* using the following method, or it will not properly map to the file system.
char const *path_cstr = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:pathString];
Now you can use it directly in fopen().
来源:https://stackoverflow.com/questions/10664955/fopen-issue-in-ios