我有一個iPhone應用程序,該應用程序正在做一些智能化的事情(爲文件類型選擇合適的圖標)給出一個文件名列表。我正在尋找類似於/etc/mime.types或類似的東西的iPhone - API調用是我認爲可以用於手機的。這是否存在?iPhone MIME類型數據庫在哪裏?
15
A
回答
43
如果確實如此,您的應用肯定無權直接讀取它。你想做什麼?
編輯
這是我寫的一個,而前一個功能。我爲Mac編寫它,但它看起來像iPhone上存在相同的功能。基本上,你給它一個文件名,它使用路徑擴展返回文件的MIME類型:
#import <MobileCoreServices/MobileCoreServices.h>
...
- (NSString*) fileMIMEType:(NSString*) file {
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[file pathExtension], NULL);
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
CFRelease(UTI);
return [(NSString *)MIMEType autorelease];
}
4
下面的函數將返回MIME類型爲給定的文件擴展名斯威夫特2
import MobileCoreServices
func mimeTypeFromFileExtension(fileExtension: String) -> String? {
guard let uti: CFString = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as NSString, nil)?.takeRetainedValue() else {
return nil
}
guard let mimeType: CFString = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() else {
return nil
}
return mimeType as String
}
0
在OBJ-C,警告內存使用C.
- (NSString *)guessMIMETypeFromFileName: (NSString *)fileName {
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[fileName pathExtension], NULL);
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
CFRelease(UTI);
if (!MIMEType) {
return @"application/octet-stream";
}
NSString *dest = [NSString stringWithString:(__bridge NSString *)(MIMEType)];
CFRelease(MIMEType);
return dest;
}
相關問題
- 1. 我可以在哪裏瞭解不同類型的數據庫?
- 2. heroku數據庫在哪裏?
- 3. 我在哪裏可以找到這些擴展的MIME類型?
- 4. iphone tabbar在哪裏加載數據?
- 5. Android Excel CSV的哪一種MIME數據類型?
- 6. iPhone的sqlite數據庫與應用程序存儲在哪裏
- 7. 哪裏可以找到我的數據庫在我的iPhone?
- 8. iPhone模擬器上存儲的sqlite3數據庫在哪裏?
- 9. 文檔類型在哪裏?
- 10. Symfony2中非數據庫函數的模型在哪裏
- 11. CAN數據是否有MIME類型?
- 12. Codeignitor數據庫查詢,或在哪裏和哪裏組合
- 13. 數據庫中的Woocommerce產品類別數存儲在哪裏?
- 14. Oracle Bug數據庫在哪裏?
- 15. Linux上的places.sqlite數據庫在哪裏?
- 16. ForerunnerDB在哪裏保存數據庫?
- 17. MVVM:把數據庫CRUD放在哪裏?
- 18. 本地redis數據庫(db)在哪裏?
- 19. 我的數據庫在哪裏?
- 20. 我的數據庫文件在哪裏?
- 21. meteor MongoDB數據庫在哪裏?
- 22. Azure Web App數據庫在哪裏?
- 23. Titanium:SQLite數據庫存儲在哪裏?
- 24. SQL Server數據庫備份文件的MIME類型
- 25. 您在哪裏指定泛型類型?
- 26. 哪裏的iPhone模擬器保存sqllite數據庫
- 27. YAML mime類型?
- 28. WPF&Mime類型
- 29. Erlang mime類型
- 30. cvs2svn MIME類型
當我剛編輯我的問題更清晰一點泄漏。 – 2010-03-13 16:49:42
不適用於iPhone – jww 2011-04-02 07:08:40
'不適用於iPhone' - 我的不好。您需要包含MobileCoreServices框架和'#import' –
jww
2011-04-02 07:24:00