如何从文件路径获取文档UTI?

时间:2014-08-26 05:05:51

标签: objective-c cocoa macos-carbon uti

我的文档路径为NSString。如何将UTI作为NSString获取?我目前使用的是LSCopyItemAttribute,但需要FSRef,而且FSRef的所有功能似乎都已弃用。

(注意:这适用于Mac OS 10.8 +。)

2 个答案:

答案 0 :(得分:2)

您将能够使用移动核心服务框架获得它。请参阅以下代码

NSString *path; // contains the file path

// Get the UTI from the file's extension:

CFStringRef pathExtension = (__bridge_retained CFStringRef)[path pathExtension];
CFStringRef type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL);
CFRelease(pathExtension);

代码段取自here

答案 1 :(得分:1)

使用可以使用url.resourceValues(forKeys:(如注释中所述):

if let resourceValues = try? url.resourceValues(forKeys: [.typeIdentifierKey]),
    let uti = resourceValues.typeIdentifier {
    return uti
}