Описание типа документа или «Доброе» описание - PullRequest
0 голосов
/ 28 марта 2011

Учитывая тип файла (например, DOC или PDF), как можно получить описание, похожее на «Вид» Finder?Например, в Finder DOC Kind - это «Формат Word 97 (.doc)», а PDF Kind - «Формат переносимого документа (PDF).

Согласно О взаимодействии с документом »iOS предоставляет общесистемный реестр ассоциаций типов файлов ».Но я не верю, что извлекаю правильную информацию (я даже не совсем уверен, что использую вышеупомянутый реестр).

Я использую приведенный ниже код, и он возвращает 'com.microsoft.word.doc 'для вида DOC.RTF - это public.rtf, а PDF - com.adobe.pdf.Более странной является ссылка (webloc): 'dyn.age81s3pcrv10g'.Ни одно из описаний не является удобным для пользователя.

NSURL* url = [NSURL fileURLWithPath:fullPathName];
if(url == nil)
  return [extension uppercaseString];    // i.e., PDF

UIDocumentInteractionController* doc = [UIDocumentInteractionController interactionControllerWithURL: url];     
if(doc == nil)
  return [extension uppercaseString];    // i.e., PDF

return doc.UTI;

1 Ответ

0 голосов
/ 02 апреля 2011

Вот код, чтобы получить описание.Например, файлы PDF извлекают «Portable Document Format (PDF)».

Чтобы использовать код на iPhone, добавьте платформу MobileCoreServices и #import <MobileCoreServices/MobileCoreServices.h>.Проверка ошибок и ASSERT были опущены для ясности.

NSString* extension = [filename pathExtension];
NSString* hint = @"public.data";

CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)extension, (CFStringRef)hint);
[(NSString *)uti autorelease];

CFStringRef mime = UTTypeCopyPreferredTagWithClass (uti, kUTTagClassMIMEType);
[(NSString *)mime autorelease];

CFStringRef description = UTTypeCopyDescription(uti);
[(NSString*)description autorelease];

NSLog(@"%@: %@", filename, description);

=========================================

Переполнение стека: Где находится база данных iPhone MIME?

Apple: Принятие унифицированных идентификаторов типов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...