Zip
一个用于压缩和解压文件的 Swift 框架。简单易用。基于 minizip 构建。
用法
在 Swift 文件的顶部导入 Zip。
import Zip
快速功能
使用 Zip 的最容易方法是通过快速功能。这两个函数都接受本地文件路径作为 NSURLs,如果遇到错误会抛出,如果在成功时返回目的地NSURL。
do {
let filePath = Bundle.main.url(forResource: "file", withExtension: "zip")!
let unzipDirectory = try Zip.quickUnzipFile(filePath) // Unzip
let zipFilePath = try Zip.quickZipFiles([filePath], fileName: "archive") // Zip
}
catch {
print("Something went wrong")
}
高级 Zip
对于更高级的用途,Zip 提供了一些函数,允许您设置自定义的目标路径,处理带密码保护的 Zip 文件,并使用进度处理闭包。如果遇到错误则抛出,但不返回。
do {
let filePath = Bundle.main.url(forResource: "file", withExtension: "zip")!
let documentsDirectory = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask)[0]
try Zip.unzipFile(filePath, destination: documentsDirectory, overwrite: true, password: "password", progress: { (progress) -> () in
print(progress)
}) // Unzip
let zipFilePath = documentsFolder.appendingPathComponent("archive.zip")
try Zip.zipFiles([filePath], zipFilePath: zipFilePath, password: "password", progress: { (progress) -> () in
print(progress)
}) //Zip
}
catch {
print("Something went wrong")
}
自定义文件扩展名
Zip支持默认的'.zip'和'.cbz'文件。要支持additional zip派生文件扩展名
Zip.addCustomFileExtension("file-extension-here")
Swift Package Manager设置
[首选] 使用要使用Zip与Swift Package Manager,请将其添加到您的包的依赖关系
.package(url: "https://github.com/marmelroy/Zip.git", .upToNextMinor(from: "2.1"))
CocoaPods设置
使用source 'https://github.com/CocoaPods/Specs.git'
pod 'Zip', '~> 2.1'
Carthage设置
使用要在Xcode项目中使用Carthage集成Zip,请在您的Cartfile
中指定它
github "marmelroy/Zip" ~> 2.1