Check NSURL for UTI / file type
我正在构建一个允许用户将视频拖放到其上的应用程序。给定一个已删除 NSURL*s 的列表,我如何确保每个都符合
如果我有一个
提前致谢!
这应该可以工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 | NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; for (NSURL *url in urls) { NSString *type; NSError *error; if ([url getResourceValue:&type forKey:NSURLTypeIdentifierKey error:&error]) { if ([workspace type:type conformsToType:@"public.movie"]) { // the URL points to a movie; do stuff here } } else { // handle error } } |
(您也可以使用
Swift 版本:
1 2 3 4 5 6 7 8 9 10 11 | do { var value: AnyObject? try url.getResourceValue(&value, forKey:NSURLTypeIdentifierKey) if let type = value as? String { if UTTypeConformsTo(type, kUTTypeMovie) { ... } } } catch { } |
Swift 5 版本:
1 2 3 4 5 6 7 | if let resourceValues = try? localUrl.resourceValues(forKeys: [URLResourceKey.typeIdentifierKey]) { if let typeId = resourceValues.typeIdentifier { if UTTypeConformsTo(type, kUTTypeMovie) { ... } } } |