Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Cocoa:获取某些文件类型的可读描述,只知道扩展名_Macos_Cocoa_Core Foundation_File Type - Fatal编程技术网

Macos Cocoa:获取某些文件类型的可读描述,只知道扩展名

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

我正在努力获得某种文件类型的可读描述,我只知道文件扩展名。例如,我想从类型“h”中获取“C头源文件”,也可以从“Zip”中获取“Zip存档”

我在谷歌上搜索,找到了一个使用LSCopyKindStringForTypeInfo的解决方案:

- (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];
}