鉴于文件类型(例如,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;
答案 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);
==========================================