Rex*_*ids 0 iphone xcode objective-c nsfilemanager
NSFilemanager在以下情况下返回true,此时不应该有任何此类文件.怎么了?
if([myManager fileExistsAtPath:[[self documentsDirectory] stringByAppendingPathComponent:@"Music/songlist.txt"]]){
NSLog(@"file is there");
}
Run Code Online (Sandbox Code Playgroud)
该文档NSFileManager似乎建议不检查文件是否存在,而只是尝试读取文件并正常处理任何错误(例如,文件未找到错误).您所描述的内容听起来并不像竞争条件 - 这是文档建议试图规避的内容 - 但是如果您只是尝试加载文件而不是检查它是否存在会发生什么?例如,您可以尝试以下方法:
NSError *error;
NSStringEncoding encoding;
NSString *fileContents = [NSString stringWithContentsOfFile:fileName
usedEncoding:&encoding
error:&error];
if (fileContents == nil)
{
NSLog (@"%@", error);
}
else
{
NSLog (@"%@", fileContents);
}
Run Code Online (Sandbox Code Playgroud)
如果你得到一个包含所有文件内容的字符串,那么文件显然就在那里.如果您收到错误,那么就会出现问题myManager.
| 归档时间: |
|
| 查看次数: |
8792 次 |
| 最近记录: |