文档类型描述或'种类'描述

时间:2011-03-28 03:32:20

标签: iphone file

鉴于文件类型(例如,DOC或PDF),如何获得类似于Finder的'Kind'的描述?例如,在Finder下,DOC Kind是'Word 97格式(.doc)',PDF Kind是'可移植文档格式(PDF)。

根据About Document Interaction,“iOS提供了系统范围的文件类型关联注册表”。但我不相信我会提取正确的信息(我甚至不确定我是否正在使用上述注册表)。

我正在使用下面的代码,它正在为DOC类型返回'com.microsoft.word.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 :(得分:0)

以下是获取说明的代码。例如,PDF文件检索“可移植文档格式(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);

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

堆栈溢出: Where's the iPhone MIME type database?

Apple:Adopting Uniform Type Identifiers

相关问题