Как я могу получить Mime Type в IOS, который не основан на расширении - PullRequest
11 голосов
/ 21 марта 2012

мы знаем, что мы можем получить MIME TYPE файла из его расширения, но это не совсем так. Например, мы изменили расширение файла и получим неправильный тип MIME. а также мы знаем, как получить MIME-тип по сигнатуре файла в C # (с помощью urlmon.dll . Используя .NET, как найти тип MIME-файла на основе сигнатуры файла, а не расширения , у меня вопрос: как мы можем получить точный тип пантомимы в IOS, независимо от того, кто-то изменяет расширение файла, мы можем получить правильный тип пантомимы.

спасибо за внимание ~!

1 Ответ

27 голосов
/ 21 марта 2012

Не могли бы вы сказать мне, как я получаю правильный тип пантомимы точно при получении пути к файлу.

В iOS используется концепция Унифицированные идентификаторы типов (UTI) для обработки типов документов.

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);

// The UTI can be converted to a mime type:

NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType);
if (type != NULL)
    CFRelease(type);

Вам следует рассмотреть возможность использования UTI для своих целей напрямую, а не преобразовывать их в менее мощный тип MIME.

...