Git Product home page Git Product logo

zipper's Introduction

Meet Zipper

Zipper

Author EMail MIT
Version Platforms Swift
Build Passing Cocoapods Carthage SPM

๐Ÿต Introduction

Zipper is a Effortless ZIP Handling in Swift.

๐Ÿ“‹ Requirements

Type Requirement

Platform

iOS

9.0+

macOS

10.11

tvOS

9.0

watchOS

2.0

Linux

with `zlib`

IDE

Xcode

10.2+

Language

Swift

5+

๐Ÿ“ฒ Installation

CocoaPods

Zipper is available on CocoaPods.

use_frameworks!
pod 'Zipper'

Manually

Copy all files in the Zipper directory into your project.

๐Ÿ›Œ Dependency

N/A

โค๏ธ Contribution

You are welcome to fork and submit pull requests.

๐Ÿ”– License

Zipper is open-sourced software, licensed under the MIT license.

๐Ÿ”ซ Usage

import Zipper

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

Zipping

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 {

}

Unzipping

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 {

}

Accessing individual Entries

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 {

}

Adding/Removing Entries

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

Adding:

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

}

Removing:

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

}

zipper's People

Contributors

meniny avatar laszlotuss avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.