使用NSURL测试文件存在?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

Snow Leopard引入了很多新的方法来使用NSURL对象来引用文件,而不是路径名或Core Services的FSRefs。

但是,有一项任务我无法找到基于URL的方法:测试文件是否存在。我正在寻找一个基于URL的版本- [NSFileManager fileExistsAtPath:]。像这种方法一样,YES如果URL描述任何东西,无论是普通文件,目录还是其他东西,都应该返回。

如果文件不存在,它们中的任何一个都不会被明确保证,并且如果它们中的某些(例如,NSURLEffectiveIconKey)可能是昂贵的。

我只能使用NSFileManager fileExistsAtPath:,但如果有更现代的方法,我宁愿使用它。

Cocoa,CF或Core Services中是否存在简单的方法或函数,这些方法或函数可以保证/记录下来告诉我给定文件(或文件引用)URL是否指向存在的文件系统对象?

提问于
用户回答回答于

NSURL确实有这样的方法:

- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error

NSURL *theURL = [NSURL fileURLWithPath:@"/Users/elisevanlooij/nonexistingfile.php" 
               isDirectory:NO];
NSError *err;
if ([theURL checkResourceIsReachableAndReturnError:&err] == NO)
    [[NSAlert alertWithError:err] runModal];
用户回答回答于
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"file.type"];
if ([[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {...}

扫码关注云+社区

领取腾讯云代金券