快速检查是否包含视频内容的 zip 文件

问题描述

我必须使用文档交互控制器预览 zip 文件,但不应预览包含视频内容的 zip 文件。有没有办法使用 swift 检查包含视频内容的 zip 文件

解决方法

有一个名为 ZIPFoundation 的第三方库可以方便地遍历 zip 条目。

  1. 在您的项目中安装 pod 'ZipFoundation'
  2. 在您的项目中复制/粘贴下面的帮助程序代码。
import Foundation
import ZIPFoundation

extension String {
    var pathExtension: String {
        URL(fileURLWithPath: self).pathExtension
    }
}

extension Archive {
    var containsVideo: Bool {
        let videoTypes: [String] = ["MOV","MP4","AVI"]
        for entry in self where entry.type == .file {
            let type = entry.path.pathExtension.uppercased()
            if videoTypes.contains(type) {
                return true
            }
        }
        return false
    }
}

从呼叫站点,您可以像下面这样使用它-

if let zipURL = Bundle.main.url(forResource: "Test",withExtension: "zip"),let arhive = Archive(url: zipURL,accessMode: .read) {
    print(arhive.containsVideo)
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...