Mar*_*lio 19 macos cocoa objective-c uti
我试图在Cocoa中找到一些方法来从文件扩展名转换为统一类型标识符.也就是说,我想找到一些方法:
".jpg" => "public.jpeg"
".html" => "public.html"
".ttf"=> "public.truetype-font"
Run Code Online (Sandbox Code Playgroud)
我搜索过NSWorkspace文档但找不到任何内容.我能得到的最接近的是:
- (NSImage *)iconForFileType:(NSString *)fileType
Run Code Online (Sandbox Code Playgroud)
返回文件扩展名的图标,和
– (NSString *)preferredFilenameExtensionForType:(NSString *)typeName
Run Code Online (Sandbox Code Playgroud)
这与我正在尝试的完全相反.你们中的任何人都知道怎么做吗?
我真的希望我不必手动检查很多扩展.
提前致谢.
Dav*_*ong 40
大约一周前我需要这个:
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)[myFilePath pathExtension],
NULL);
Run Code Online (Sandbox Code Playgroud)
如果我在扩展@"php",@"jpg",@"html"和@"ttf"上运行它,它会打印:
public.php-script
public.jpeg
public.html
public.truetype-ttf-font
Run Code Online (Sandbox Code Playgroud)
auc*_*uco 12
您可以使用终端并调用mdls,它提供有关特定文件类型(包括UTI)的各种信息.
mdls /myPath/to/myFile.ext
Run Code Online (Sandbox Code Playgroud)
然后mdls会在kMDItemContentTypeTree中显示相关的UTI(也可以从你的Cocoa App btw中调用mdls).