Macos Cocoa:获取某些文件类型的可读描述,只知道扩展名
我正在努力获得某种文件类型的可读描述,我只知道文件扩展名。例如,我想从类型“h”中获取“C头源文件”,也可以从“Zip”中获取“Zip存档” 我在谷歌上搜索,找到了一个使用LSCopyKindStringForTypeInfo的解决方案:Macos Cocoa:获取某些文件类型的可读描述,只知道扩展名,macos,cocoa,core-foundation,file-type,Macos,Cocoa,Core Foundation,File Type,我正在努力获得某种文件类型的可读描述,我只知道文件扩展名。例如,我想从类型“h”中获取“C头源文件”,也可以从“Zip”中获取“Zip存档” 我在谷歌上搜索,找到了一个使用LSCopyKindStringForTypeInfo的解决方案: - (NSString *)humanReadableFiletype:(NSString *)ext { NSString *res; LSCopyKindStringForTypeInfo(nil, nil, (CFStringRef)ex
- (NSString *)humanReadableFiletype:(NSString *)ext
{
NSString *res;
LSCopyKindStringForTypeInfo(nil, nil, (CFStringRef)ext, (CFStringRef *)&res);
return [res autorelease];
}
它适用于除Preview.app之外的大多数文件类型,因此“jpg”、“gif”和“pdf”将被解释为“预览文档”。(代码3.2.5,雪豹)
你们能帮我吗
谢谢 尝试使用UTI(统一类型标识符)和相关API,如文件所述:
#导入
-(NSString*)humanReadableFileTypeForFileExtension:(NSString*)扩展名
{
CFStringRef fileUTI=UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,(CFStringRef)扩展名,NULL);
NSString*utiDescription=(NSString*)uttypecopydription(fileUTI);
CFRelease(fileUTI);
返回[自动释放];
}
#import <Carbon/Carbon.h>
- (NSString *)humanReadableFileTypeForFileExtension:(NSString *)extension
{
CFStringRef fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)extension, NULL);
NSString *utiDescription = (NSString *)UTTypeCopyDescription(fileUTI);
CFRelease(fileUTI);
return [utiDescription autorelease];
}