2010-03-13 12 views
15

मेरे पास आईफोन के लिए एक प्रोग्राम है जो फ़ाइल नामों की एक सूची के बाद बुद्धिमान चीजें (फ़ाइल प्रकारों के लिए उचित आइकन चुनना) माना जाता है। मैं आईफोन की तलाश कर रहा हूं जैसे /etc/mime.types या कुछ समान- एक एपीआई कॉल जो मैं मान रहा हूं वह फोन के लिए उपलब्ध होगा। क्या यह अस्तित्व में है?आईफोन एमआईएमई प्रकार डेटाबेस कहां है?

उत्तर

43

यदि ऐसा हुआ, तो आपके ऐप को निश्चित रूप से इसे सीधे पढ़ने के लिए अनुमति नहीं होगी। तुम क्या करने की कोशिश कर रहे हो?

संपादित

यह एक समारोह मैंने कुछ समय पहले लिखा है। मैंने इसे मैक के लिए लिखा था, लेकिन ऐसा लगता है कि आईफोन पर एक ही काम मौजूद है। मूल रूप से, आप इसे एक फ़ाइल नाम देते हैं, और यह पथ एक्सटेंशन का उपयोग करता फ़ाइल के 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]; 
} 
+1

का उपयोग कर मैं बस अपना प्रश्न संपादित में थोड़ा और अधिक स्पष्ट होना। –

+1

आईफोन – jww

+8

पर काम नहीं करता है 'आईफोन पर काम नहीं करता है' - मेरा बुरा। आपको मोबाइलकोर सर्विसेज फ्रेमवर्क, और '# आयात <मोबाइलकोर सर्विसेज/मोबाइलकोर सर्विसेज.h>' – jww

4

निम्नलिखित समारोह में दिए गए फ़ाइल एक्सटेंशन के लिए माइम-प्रकार वापस आ जाएगी स्विफ्ट 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 सी में, स्मृति को चेतावनी लीक जब सी

- (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; 
} 
संबंधित मुद्दे