Zipper 1.2.0

Zipper 1.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年4月
SPM支持 SPM

Meniny 维护。



Zipper 1.2.0

了解 Zipper

Zipper

Author EMail MIT
Version Platforms Swift
Build Passing Cocoapods Carthage SPM

🏵简介

Zipper 是 Swift 中的简单 ZIP 处理。

📋要求

类型 要求

平台

iOS

9.0+

macOS

10.11

tvOS

9.0

watchOS

2.0

Linux

带有 `zlib`

IDE

Xcode

10.2+

语言

Swift

5+

📲安装

CocoaPods

ZipperCocoaPods 上可用。

use_frameworks!
pod 'Zipper'

手动

将 Zipper 目录中的所有文件复制到您的项目中。

🛌依赖

N/A

❤️贡献

欢迎您 Fork 并提交 pull 请求。

🔖许可证

Zipper 是开源软件,受 MIT 许可证的许可。

🔫用法

import Zipper

let fileManager = FileManager()
let currentDirectoryURL = URL(fileURLWithPath: fileManager.currentDirectoryPath)

压缩

var archiveURL = currentDirectoryURL.appendPathComponent("archive.zip")
var resourcesURL = currentDirectoryURL.appendPathComponent("directory")
// zip:
do {
  try fileManager.zip(item: resourcesURL, to: archive)
} catch _ {}
// or:
guard let archive = Zipper(url: archiveURL, accessMode: .create) else  { return }
do {
  try archive.zip(item: resourcesURL)
} catch {

}

解压缩

var archiveURL = currentDirectoryURL.appendPathComponent("archive.zip")
var destinationURL = currentDirectoryURL.appendPathComponent("directory")
// unzip:
do {
  try fileManager.createDirectory(at: destinationURL, withIntermediateDirectories: true, attributes: nil)
  try fileManager.unzip(item: archiveURL, to: destinationURL)
} catch {

}
// or:
guard let archive = Zipper(url: archiveURL, accessMode: .read) else  { return }
do {
  try archive.unzip(to: destinationURL)
} catch {

}

访问单个条目

var archiveURL = currentDirectoryURL.appendPathComponent("archive.zip")
guard let archive = Zipper(url: archiveURL, accessMode: .read) else  { return }
guard let entry = archive["file.txt"] else { return }
var destinationURL = currentDirectoryURL.appendPathComponent("output.txt")

do {
    try archive.extract(entry, to: destinationURL)
} catch {

}

添加/删除条目

var archiveURL = currentDirectoryURL.appendPathComponent("archive.zip")
var fileURL = currentDirectoryURL.appendPathComponent("file.ext")

添加

guard let archive = Zipper(url: archiveURL, accessMode: .update) else { return }
do {
    try archive.addEntry(with: fileURL.lastPathComponent, relativeTo: fileURL.deletingLastPathComponent())
} catch {

}

删除

guard let entry = archive["file.txt"] else { return }
do {
    try archive.remove(entry)
} catch {

}