2010-03-13 37 views
15

Tôi có một chương trình dành cho iPhone được cho là đang thực hiện những điều thông minh (chọn ra các biểu tượng thích hợp cho các loại tệp) với danh sách tên tệp. Tôi đang tìm kiếm iPhone trên một cái gì đó như /etc/mime.types hoặc một cái gì đó tương tự-một cuộc gọi API là những gì tôi giả định sẽ có sẵn cho điện thoại. Điều này có tồn tại không?Cơ sở dữ liệu loại iPhone MIME ở đâu?

Trả lời

43

Nếu có, ứng dụng của bạn chắc chắn sẽ không có quyền đọc ngay cả ứng dụng đó. Bạn đang cố làm gì vậy?

EDIT

Đây là một chức năng tôi đã viết một thời gian trước đây. Tôi đã viết nó cho Mac, nhưng có vẻ như các chức năng tương tự tồn tại trên iPhone. Về cơ bản, bạn cung cấp cho nó một tên tập tin, và nó sử dụng phần mở rộng con đường quay trở lại kiểu MIME của tập tin:

#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]; 
} 
+1

tôi chỉ thay đổi nội dung câu hỏi của tôi để được rõ ràng hơn một chút. –

+1

Không hoạt động trên iPhone – jww

+8

'Không hoạt động trên iPhone' - xấu của tôi. Bạn cần phải bao gồm khung MobileCoreServices và '#import ' – jww

4

Chức năng sau đây sẽ trả lại mime-type cho một phần mở rộng tập tin được đưa ra trong Swift 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

Trong obj-C, cảnh báo vào bộ nhớ bị rò rỉ khi sử dụng 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; 
} 
Các vấn đề liên quan