Какао: Получить удобочитаемое описание некоторого типа файла, зная только имя расширения - PullRequest
1 голос
/ 31 декабря 2011

Я работаю над получением понятного человеку описания определенного типа файла, и я знаю только расширение файла.Например, я хотел бы получить "Исходный файл заголовка C" из типа "h", а также "Архив Zip" из "zip"

Я гуглил и нашел решение с помощью LSCopyKindStringForTypeInfo:

- (NSString *)humanReadableFiletype:(NSString *)ext
{
    NSString *res;
    LSCopyKindStringForTypeInfo(nil, nil, (CFStringRef)ext, (CFStringRef *)&res);
    return [res autorelease];
}

Он работает с большинством типов файлов, за исключением файлов Preview.app, поэтому «jpg», «gif» и «pdf» будут интерпретироваться как «Preview Document».(XCode 3.2.5, Snow Leopard)

Ребята, вы мне поможете?

Спасибо!

1 Ответ

2 голосов
/ 31 декабря 2011

Попробуйте использовать UTI (унифицированные идентификаторы типов) и связанный API, как описано здесь :

#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];
}
...