Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fopen issue in iOS

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

like image 497
some_id Avatar asked May 19 '12 11:05

some_id


1 Answers

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().

like image 119
Jody Hagins Avatar answered Oct 14 '22 09:10

Jody Hagins