Pet*_*sey 70 cocoa nsurl core-foundation nsfilemanager osx-snow-leopard
Snow Leopard引入了许多新方法来使用NSURL对象来引用文件,而不是路径名或Core Services的FSRef.
但是,有一项任务我找不到基于URL的方法:测试文件是否存在.我正在寻找基于URL的版本- [NSFileManager fileExistsAtPath:
].与该方法一样,YES
如果URL描述任何内容,它应该返回,无论是常规文件,目录还是其他任何内容.
我可以尝试查找各种资源值,但是如果文件没有,则没有明确保证它们不存在,并且其中一些(例如,NSURLEffectiveIconKey)可能成本很高.
我可以使用NSFileManager fileExistsAtPath:
,但如果有更现代的方法,我宁愿使用它.
Cocoa,CF或Core Services中是否有一个简单的方法或函数可以保证/记录,告诉我给定的文件(或文件引用)URL是否指向存在的文件系统对象?
Eli*_*oij 138
NSURL确实有这种方法:
- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
其中"返回是否可以访问文件URL指向的资源."
NSURL *theURL = [NSURL fileURLWithPath:@"/Users/elisevanlooij/nonexistingfile.php"
isDirectory:NO];
NSError *err;
if ([theURL checkResourceIsReachableAndReturnError:&err] == NO)
[[NSAlert alertWithError:err] runModal];
Run Code Online (Sandbox Code Playgroud)
小智 29
在iOS上我找不到任何其他方式......
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"file.type"];
if ([[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {...}
Run Code Online (Sandbox Code Playgroud)
Wil*_*ken 10
这是Swift 2的答案:
var error:NSError?
let folderExists = theURL.checkResourceIsReachableAndReturnError(&error)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42462 次 |
最近记录: |