react-native-zip-archive

Zip archive utility for react-native

Github stars Tracking Chart

React Native Zip Archive npm

Zip archive utility for react-native

Compatibility, react-native version, react-native-zip-archive version, ---, ---, ^0.60, ^5.0.0, ^0.58, ^4.0.0, <0.58, ^3.0.0, ## Installation

npm install react-native-zip-archive --save

Linking

For iOS, run the command below in you app's root folder once the package has been installed

cd ./ios && pod install

For Andriod, it's ready to go.

Usage

import it into your code

import { zip, unzip, unzipAssets, subscribe } from 'react-native-zip-archive'

you may also want to use something like react-native-fs to access the file system (check its repo for more information)

import { MainBundlePath, DocumentDirectoryPath } from 'react-native-fs'

API

zip(source: string, target: string): Promise<string>

zip source to target

Example

const targetPath = `${DocumentDirectoryPath}/myFile.zip`
const sourcePath = DocumentDirectoryPath

zip(sourcePath, targetPath)
.then((path) => {
  console.log(`zip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

zipWithPassword(source: string, target: string, password: string, encryptionType: string): Promise<string>

zip source to target

NOTE: encryptionType is not supported on iOS yet, so it would be igonred on that platform.

Example

const targetPath = `${DocumentDirectoryPath}/myFile.zip`
const sourcePath = DocumentDirectoryPath
const password = 'password'
const encryptionType = 'STANDARD'; //possible values: AES-256, AES-128, STANDARD. default is STANDARD

zipWithPassword(sourcePath, targetPath, password, encryptionType)
.then((path) => {
  console.log(`zip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

unzip(source: string, target: string): Promise

unzip from source to target

Example

const sourcePath = `${DocumentDirectoryPath}/myFile.zip`
const targetPath = DocumentDirectoryPath
const charset = 'UTF-8'
// charset possible values: UTF-8, GBK, US-ASCII and so on. If none was passed, default value is UTF-8


unzip(sourcePath, targetPath, charset)
.then((path) => {
  console.log(`unzip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

unzipWithPassword(source: string, target: string, password: string): Promise<string>

unzip from source to target

Example

const sourcePath = `${DocumentDirectoryPath}/myFile.zip`
const targetPath = DocumentDirectoryPath
const password = 'password'

unzipWithPassword(sourcePath, targetPath, password)
.then((path) => {
  console.log(`unzip completed at ${path}`)
})
.catch((error) => {
  console.log(error)
})

unzipAssets(assetPath: string, target: string): Promise<string>

unzip file from Android assets folder to target path

Note: Android only.

assetPath is the relative path to the file inside the pre-bundled assets folder, e.g. folder/myFile.zip. Do not pass an absolute directory.

const assetPath = './myFile.zip'
const targetPath = DocumentDirectoryPath

unzipAssets(assetPath, targetPath)
.then(() => {
  console.log('unzip completed!')
})
.catch((error) => {
  console.log(error)
})

subscribe(callback: ({ progress: number, filePath: string }) => void): EmitterSubscription

Subscribe to the progress callbacks. Useful for displaying a progress bar on your UI during the process.

Your callback will be passed an object with the following fields:

  • progress (number) a value from 0 to 1 representing the progress of the unzip method. 1 is completed.
  • filePath (string) the zip file path of zipped or unzipped file.

Note: Remember to check the filename while processing progress, to be sure that the unzipped or zipped file is the right one, because the event is global.

Note: Remember to unsubscribe! Run .remove() on the object returned by this method.

componentDidMount() {
  this.zipProgress = subscribe(({ progress, filePath }) => {
    this.setState({ zipProgress: progress })
  })
}

componentWillUnmount() {
  // Important: Unsubscribe from the progress events
  this.zipProgress.remove()
}

Overview

Name With Ownermockingbot/react-native-zip-archive
Primary LanguageJava
Program languageObjective-C (Language Count: 4)
Platform
License:MIT License
Release Count55
Last Release Namev6.1.1 (Posted on 2024-05-07 10:06:39)
First Release Name0.0.11 (Posted on )
Created At2015-08-26 09:06:18
Pushed At2024-05-08 15:05:14
Last Commit At2024-05-08 23:04:34
Stargazers Count403
Watchers Count13
Fork Count148
Commits Count296
Has Issues Enabled
Issues Count182
Issue Open Count22
Pull Requests Count83
Pull Requests Open Count1
Pull Requests Close Count37
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top