在我目前的應用程序中,我從服務器上下載了幾個文件,並將它們存儲在本地。確定擴展名的文件沒有擴展名
基於文件的擴展名,我在適當的視圖中加載文件。
實施例:
- 文件擴展名: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