美文网首页
iOS通过文件后缀识别文件类型

iOS通过文件后缀识别文件类型

作者: 啦啦啦的小马蹄 | 来源:发表于2020-12-27 19:22 被阅读0次

在做的macCatalyst项目中有一个新需求,要求能够对正在播放的视频进行打点输出记录当前帧数及相应动作记录并输出。这个需求涉及到视频文件和记录文本文件的读取,这就涉及到两种格式文件-视频格式文件和文本格式文件。有两种方案:

1.对当前操作进行标记以区分对应文件

//设置tag
var selectTag = 0 //0-视频,1-文本
//记录操作,改变tag
 @objc func didTapActionBtn(sender:UIButton){
    self.selectTag  = sender.tag == 3000 ? 0 : 1
 }
//在delegate内做对应操作
 func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    ...
   if self.selectTag == 0{//视频格式文件操作
    ...
   }else self.selectTag == 1{//文本格式文件操作
    ...
   }
    ...
}

2.通过所选择文件的后缀名进行格式识别

第一种方法虽然简单粗暴,但不适用于多种文本格式,不能全部都打上tag来进行区分。通过后缀名进行时识别相对会更清晰一些,文件名是唯一的,文件后缀名一般也都对应正确的文件格式。通过后缀名来解析对应格式也做到了职能单一化,将功能剥离更清晰。话不多少,show me code

1.导入MobileCoreServices库
  import MobileCoreServices
2.选择文件后进行文件格式解析
 func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    ...
            let fileExt = url.pathExtension //url为所选文件路径
            let uttype = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,fileExt as CFString,nil)
            switch uttype?.takeRetainedValue(){
            case kUTTypeMovie:
                print("这是一个视频文件")
            case kUTTypeText:
                print("这是一个文本文件")
            default:
                break
            }
            }
    ...
}

ps:常见格式枚举类型(uniform type)

文本格式:
public let kUTTypeText: CFString
public let kUTTypePlainText: CFString
public let kUTTypeHTML: CFString
图片格式:
public let kUTTypeImage: CFString
public let kUTTypeJPEG: CFString
public let kUTTypeGIF: CFString
public let kUTTypePNG: CFString
视频格式:
public let kUTTypeMovie: CFString
public let kUTTypeVideo: CFString
public let kUTTypeQuickTimeMovie: CFString
public let kUTTypeMPEG: CFString
public let kUTTypeMPEG4: CFString

相关文章

  • Linux下判断文件类型

    因为Linux对文件后缀不敏感,所以不能想window一样考后缀等识别文件类型,也就是,linux下改变了文件的后...

  • 不通过后缀识别文件类型

    文件扩展名对应文件类型,参考: http://tool.oschina.net/commons 因 如果上传文件 ...

  • Android获取文件类型

    一、 通过文件名后缀: 文件命名后缀如.jpg、.png等等一般即为文件类型,但有些时候不能保证文件后缀名一定有效...

  • 常见文件的mimeType

    设置mimeType可以方便应用程序正确识别文件类型,常见的mimeType匹配规则见下表 文件后缀mimeTyp...

  • iOS开发-如何判断文件类型

    如何判断文件类型 可以直接通过后缀来判断。通过pathExtension获得后缀名(此方法不严谨,可能存在后缀名被...

  • js 根据后缀判断文件类型

    根据后缀判断文件类型

  • file [options] file

    识别文件类型,不依赖于后缀名。该命令将按序运行三套识别模式,直至返回得到测试结果。预设模式下,只分析普通文件的具体...

  • 18·iOS 面试题·在不知道二进制文件格式的情况下如何区分文件

    前言 对于判断一个文件的格式,不可以简单通过文件的后缀名来确定文件类型,因为后缀名是可以自由修改的。在平时开发中,...

  • file命令

    命令简介: 该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不...

  • Webpack轻松入门(三)——图片打包

    我们知道,在Webpack中,js文件类型是能够被识别并直接打包的,而其他文件类型(如CSS和图片等)则需要通过特...

网友评论

      本文标题:iOS通过文件后缀识别文件类型

      本文链接:https://www.haomeiwen.com/subject/wxutoktx.html