All Projects β†’ mockingbot β†’ React Native Zip Archive

mockingbot / React Native Zip Archive

Licence: mit
Zip archive utility for react-native

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to React Native Zip Archive

laravel-backup-shield
πŸ”’Password protection (and encryption) for your laravel backups.
Stars: ✭ 32 (-89.33%)
Mutual labels:  zip
ZipWriter
Library for creating ZIP archive for Lua
Stars: ✭ 15 (-95%)
Mutual labels:  zip
cross-unzip
Cross-platform 'native' unzip in Node.js
Stars: ✭ 17 (-94.33%)
Mutual labels:  zip
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (-27.67%)
Mutual labels:  zip
python-zipstream
Like Python's ZipFile module, except it works as a generator that provides the file in many small chunks.
Stars: ✭ 117 (-61%)
Mutual labels:  zip
ZipCrack
Crack password protected zip files
Stars: ✭ 23 (-92.33%)
Mutual labels:  zip
lrkFM
Awesome, (ad) free, open source file manager for Android
Stars: ✭ 44 (-85.33%)
Mutual labels:  zip
Node Stream Zip
node.js library for fast reading of large ZIPs
Stars: ✭ 252 (-16%)
Mutual labels:  zip
zip
PHP ZipArchive toolbox
Stars: ✭ 30 (-90%)
Mutual labels:  zip
uncompress.js
Uncompress ZIP, RAR, and TAR files with pure JavaScript
Stars: ✭ 79 (-73.67%)
Mutual labels:  zip
rc-zip
Pure rust zip & zip64 reading and writing
Stars: ✭ 93 (-69%)
Mutual labels:  zip
aspZip
A classic ASP zip and unzip utility class that uses the native zip support from Windows (XP and above) - no components needed
Stars: ✭ 24 (-92%)
Mutual labels:  zip
epub-package.dart
A dart package to parse EPUB files
Stars: ✭ 21 (-93%)
Mutual labels:  zip
zip-bucket
zips files in a Google Cloud Storage [tm] bucket
Stars: ✭ 32 (-89.33%)
Mutual labels:  zip
lzbase62
LZ77(LZSS) based compression algorithm in base62 for JavaScript.
Stars: ✭ 38 (-87.33%)
Mutual labels:  zip
bled
Base Library for Easy Decompression
Stars: ✭ 21 (-93%)
Mutual labels:  zip
zipread
Fast and memory efficient ZIP reader for Node.js
Stars: ✭ 12 (-96%)
Mutual labels:  zip
Gulp Zip
ZIP compress files
Stars: ✭ 262 (-12.67%)
Mutual labels:  zip
tiny-zip
The missing Zip library for Java
Stars: ✭ 18 (-94%)
Mutual labels:  zip
cracker-ng
ZIP cracker, CCRYPT cracker, and others to come.
Stars: ✭ 60 (-80%)
Mutual labels:  zip

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 | string[], target: string): Promise<string>

zip source to target

NOTE: only support zip folder, not file entries

Example

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

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

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

zip source to target

NOTE: only support zip folder, not file entries

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.error(error)
})

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

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.error(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.error(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((path) => {
  console.log(`unzip completed at ${path}`)
})
.catch((error) => {
  console.error(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 }) => {
    // the filePath is always empty on iOS for zipping.
    console.log(`progress: ${progress}\nprocessed at: ${filePath}`)
  })
}

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

Example App

You can use this repo, https://github.com/plrthink/RNZATestApp, for testing and contribution. For more information please refer to its README.

Related Projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].