How can you read a files MIME-type in objective-c

后端 未结 9 1630
伪装坚强ぢ
伪装坚强ぢ 2020-12-01 01:50

I am interested in detecting the MIME-type for a file in the documents directory of my iPhone application. A search through the docs did not provide any answers.

9条回答
  •  情歌与酒
    2020-12-01 02:47

    Add MobileCoreServices framework.

    Objective C:

    #import     
    NSString *fileExtension = [myFileURL pathExtension];
    NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
    NSString *contentType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);
    

    Swift:

    import MobileCoreServices
    
    func mimeType(fileExtension: String) -> String? {
    
        guard !fileExtension.isEmpty else { return nil }
    
        if let utiRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as CFString, nil) {
            let uti = utiRef.takeUnretainedValue()
            utiRef.release()
    
            if let mimeTypeRef = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType) {
                let mimeType = MIMETypeRef.takeUnretainedValue()
                mimeTypeRef.release()
                return mimeType as String
            }
        }
    
        return nil
    }
    

提交回复
热议问题