在我目前的应用程序中,我从服务器上下载了几个文件,并将它们存储在本地。确定扩展名的文件没有扩展名
基于文件的扩展名,我在适当的视图中加载文件。
实施例:
- 文件扩展名:MOV,3GP,M4A等,=>在媒体播放器的显示。
- 文件扩展名:rtf,pptx,numbers等,=>在UIWebView中显示。
- 文件扩展名:gif,png,xbm等,=>在UIImageView中显示。
问题是:一些下载的文件可能没有任何扩展名。
我发现的一种方法是在connectionDidFinishLoading从响应中获取MIMEType并从中获取文件扩展名。我用下面的代码,对于相同的:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
CFStringRef mimeType = (__bridge CFStringRef)[_respo MIMEType];
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);
NSString *fileName = [NSString stringWithFormat:@"%@.%@", [[_respo suggestedFilename] stringByDeletingPathExtension], (__bridge NSString *)extension];
[[NSFileManager defaultManager] createFileAtPath:[[self docsDir] stringByAppendingPathComponent:[NSString stringWithFormat:@"Downloads/%@", fileName]] contents:_downloadedData attributes:nil];
}
现在我的问题是:
是否有任何其他方法来识别文件扩展名的文件,但不扩展,从NSData对象说什么?
代替检查文件扩展名,是否有任何其他方式来显示文件在适当的视图?
请建议。
可能最容易使用'QLPreviewController'将所有文件。然后,您不需要处理文件扩展名和文件类型,并且用户可以获得所有文件的一致用户体验。 – rmaddy