絶対パスを使用してファイルを開こうとしています。私のアプリはobjective-cを使用して開きたいファイルを送信し、Cを使用して開きます。これを使用して開こうとします
NSString *str = [[NSString alloc]init];
NSOpenPanel *o = [[NSOpenPanel alloc]init];
[o setAllowsMultipleSelection:NO];
[o setCanChooseDirectories:NO];
[o setCanChooseFiles:YES];
[o setPrompt:@"Open"];
if ([o runModal] == NSOKButton )
{
// Get an array containing the full filenames of all
// files and directories selected.
NSArray* files = [o URLs];
// Loop through all the files and process them.
int i;
for( i = 0; i < [files count]; i++ )
{
NSString* fileName = [[files objectAtIndex:i] absoluteString];
NSLog(@"%@", fileName);
str = [NSString stringWithFormat:@"%s", openFile([fileName UTF8String])];
self.tv.string = str;
}
}
openfileメソッドはこれです
char *openFile(const char file[1024]){
FILE *f = fopen(file, "r");
static char c[1000];
char *d;
if (f!=NULL) {
if (fgets(c, 1000, f) !=NULL){
d = c;
}
else{
d = "No text";
}
}
else{
d="error";
perror(f);
}
fclose(f);
return d;
}
のような絶対パスを送信しますfile://localhost/Users/macuser/test.txt
が、をperror(f);
返しますNo such file or directory
。ファイルが存在することがわかっているのに、なぜこれが発生するのですか?