通过 文件路径/文件名/文件后缀 获取mimeType(文件媒体类型)

import MobileCoreServices

extension String {
    
    /// 通过 文件路径/文件名/文件后缀 获取mimeType(文件媒体类型)
    /// 需要导入 MobileCoreServices
    var mimeType: String {
        // 通用的二进制类型
        let defaultMIMEType = "application/octet-stream"
        
        // 获取文件名后缀标记
        guard let tag = components(separatedBy: "/").last?
            .components(separatedBy: ".").last?
            .trimmingCharacters(in: .whitespacesAndNewlines) else { return defaultMIMEType }
        
        // 异常则返回 二进制通用类型
        guard let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, tag as CFString, nil)?.takeRetainedValue(),
            let mimeType = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue()
            else { return defaultMIMEType }
        
        return mimeType as String
    }
}

你可能感兴趣的:(通过 文件路径/文件名/文件后缀 获取mimeType(文件媒体类型))