node-7z
A Node.js wrapper for 7-Zip, originally developed by @quentinrossetti and forked for the purpose of setting path to 7zip executable.
README: Usage
Copy of originalI chose to use Promises in this library. API is consistent with standard use:
var Zip = ; // Name the class as you want!var myTask = ;myTask // Equivalent to `on('data', function (files) { // ... });`; // When all is done; // On error;
Installation
You must have the 7za
executable available in your PATH or in the same
directory of your package.json
file.
On Debian an Ubuntu install the
p7zip-full
package.
On Windows use the
7za.exe
(link here) binary.
On Mac OSX use Homebrew
brew install p7zip
npm install --save node-7z
API
See the 7-Zip documentation for the full list of usages and options (switches).
The type of the list of files can be either String or Array.
Zip.add
Add: Arguments
archive
Path to the archive you want to create.files
The file list to add.options
An object of options (7-Zip switches).
Progress
files
A array of all the extracted files AND directories. The/
character is used as a path separator on every platform.
Error
err
An Error object.
Zip.delete
Delete: Arguments
archive
Path to the archive you want to delete files from.files
The file list to delete.options
An object of options (7-Zip switches).
Error
err
An Error object.
Zip.extract
Extract: Arguments
archive
The path to the archive you want to extract.dest
Where to extract the archive.options
An object of options.
Progress
files
A array of all the extracted files AND directories. The/
character is used as a path separator on every platform.
Error
err
An Error object.
Zip.extractFull
Extract with full paths: Arguments
archive
The path to the archive you want to extract.dest
Where to extract the archive (creates folders for you).options
An object of options.
Progress
files
A array of all the extracted files AND directories. The/
character is used as a path separator on every platform.
Error
err
An Error object.
Zip.list
List contents of archive: Arguments
archive
The path to the archive you want to analyse.options
An object of options.
Progress
files
A array of objects of all the extracted files AND directories. The/
character is used as a path separator on every platform. Object's properties are:date
,attr
,size
andname
.
Fulfill
spec
An object of tech spec about the archive. Properties are:path
,type
,method
,physicalSize
andheadersSize
(Some of them may be missing with non-7z archives).
Error
err
An Error object.
Zip.test
Test integrity of archive: Arguments
archive
The path to the archive you want to analyse.options
An object of options.
Progress
files
A array of all the extracted files AND directories. The/
character is used as a path separator on every platform.
Error
err
An Error object.
Zip.update
Update: Arguments
archive
Path to the archive you want to update.files
The file list to update.options
An object of options (7-Zip switches).
Progress
files
A array of all the extracted files AND directories. The/
character is used as a path separator on every platform.
Error
err
An Error object.
Advanced usage
Compression method
With the 7za
binary compression is made like that:
# adds *.exe and *.dll files to solid archive archive.7z using LZMA method# with 2 MB dictionary and BCJ filter.7z a archive.7z *.exe -m0=BCJ -m1=LZMA:d=21
With node-7z you can translate it like that:
var archive = ;archive;
Add, delete and update multiple files
When adding, deleting or updating archives you can pass either a string or an
array as second parameter (the files
parameter).
var archive = ;archive;
Wildcards
You can extract with wildcards to specify one or more file extensions. To do
this add a wildcards
attribute to the options
object. The wildcard
attribute takes an Array as value. In this array each item is a wildcard.
var archive = ;archive;
Note that the r
(for recursive) attribute is passed in this example.
With ❤️ from quentinrossetti