Skip to content

Repository files navigation

ADM-ZIP for NodeJS

ADM-ZIP is a pure JavaScript implementation for zip data compression for NodeJS.

Build Status

Installation

With npm do:

$ npm install adm-zip

Electron file system support described below.

What is it good for?

The library allows you to:

  • decompress zip files directly to disk or in memory buffers
  • compress files and store them to disk in .zip format or in compressed buffers
  • update content of/add new/delete files from an existing .zip

Dependencies

There are no other nodeJS libraries that ADM-ZIP is dependent of

Examples

Basic usage

varAdmZip=require("adm-zip");// reading archivesvarzip=newAdmZip("./my_file.zip");varpassword="1234567890";varzipEntries=zip.getEntries();// an array of ZipEntry records - add password parameter if entries are password protectedzipEntries.forEach(function(zipEntry){console.log(zipEntry.toString());// outputs zip entries informationif(zipEntry.entryName=="my_file.txt"){console.log(zipEntry.getData().toString("utf8"));}});// outputs the content of some_folder/my_file.txtconsole.log(zip.readAsText("some_folder/my_file.txt"));// extracts the specified file to the specified locationzip.extractEntryTo(/*entry name*/"some_folder/my_file.txt",/*target path*/"/home/me/tempfolder",/*maintainEntryPath*/false,/*overwrite*/true);// extracts everythingzip.extractAllTo(/*target path*/"/home/me/zipcontent/",/*overwrite*/true);// creating archivesvarzip=newAdmZip();// add file directlyvarcontent="inner content of the file";zip.addFile("test.txt",Buffer.from(content,"utf8"),"entry comment goes here");// add local filezip.addLocalFile("/home/me/some_picture.png");// get everything as a buffervarwillSendthis=zip.toBuffer();// or write everything to diskzip.writeZip(/*target file name*/"/home/me/files.zip");// ... more examples in the wiki

For more detailed information please check out the wiki.

Electron original-fs

ADM-ZIP has supported electron original-fs for years without any user interractions but it causes problem with bundlers like rollup etc. For continuing support original-fs or any other custom file system module. There is possible specify your module by fs option in ADM-ZIP constructor.

Example:

constAdmZip=require("adm-zip");constOriginalFs=require("original-fs");// reading archivesconstzip=newAdmZip("./my_file.zip",{fs: OriginalFs});...

About

A Javascript implementation of zip for nodejs. Allows user to create or extract zip files both in memory or to/from disk

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages