I have written below for zipping a directory :
const archiver = require('archiver');
let createArchive = function(sourceDir, destDir) {
const archive = archiver('zip');
const stream = fs.createWriteStream(destDir);
return new Promise((resolve, reject) => {
archive
.directory(sourceDir, false)
.on('error', err => reject(err))
.pipe(stream)
;
stream.on('close', () => resolve());
archive.finalize();
});
}
Before zipping my directory looked like this :
- excelArchive.zip
- test.txt
- test2.gz
When I unzipped the archive (called yayy.zip
) it had these files in it:
- excelArchive.zip
- test.txt
- test2.gz
- yayy.zip
There is an invalid file called yayy.zip
inside it. How can I avoid this?
Instead of
directory
, you can use theglob
method to specify the files to zip. It takes a second argument where you can specify files to ignore.