var AdmZip = require('adm-zip');
// reading archives
var zip = new AdmZip("./my_file.zip");
var zipEntries = zip.getEntries(); // an array of ZipEntry records
zipEntries.forEach(function(zipEntry) {
console.log(zipEntry.toString()); // outputs zip entries information
if (zipEntry.entryName == "my_file.txt") {
console.log(zipEntry.data.toString('utf8'));
}
});
// outputs the content of some_folder/my_file.txt
console.log(zip.readAsText("some_folder/my_file.txt"));
// extracts the specified file to the specified location
zip.extractEntryTo(/*entry name*/"some_folder/my_file.txt", /*target path*/"/home/me/tempfolder", /*overwrite*/true)
// extracts everything
zip.extractAllTo(/*target path*/"/home/me/zipcontent/", /*overwrite*/true);
// creating archives
var zip = new AdmZip();
// add file directly
zip.addFile("test.txt", new Buffer("inner content of the file"), "entry comment goes here");
// add local file
zip.addLocalFile("/home/me/some_picture.png");
// get everything as a buffer
var willSendthis = zip.toBuffer();
// or write everything to disk
zip.writeZip(/*target file name*/"/home/me/files.zip");
var extractZip = function(path, extractTo) {
return new Promise((resolve, reject) => {
try {
var zip = new admzip(path);
var zipEntries = zip.getEntries();
zip.extractEntryTo(zipEntries[0], extractTo, false, true);
fs.unlink(path, function(){resolve(true)});
} catch (e) {
return reject(e);
}
});
};
function decompressZip(file) {
const zip = new AdmZip(file);
zip.extractAllTo(__rootdir, true);
return path.join(__rootdir, zip.getEntries()[0].entryName);
}
var cacheArchiveFile = function (url) {
//...
// Download the archive file.
shell.mkdir('-p', partialPath);
var file = path.join(partialPath, 'file.zip');
var result = syncRequest('GET', url);
fs.writeFileSync(file, result.getBody());
// Extract the archive file.
console.log("Extracting archive.");
var directory = path.join(partialPath, "dir");
var zip = new admZip(file);
zip.extractAllTo(directory);
//...
}
// will extract the file myfile.txt from the archive to /home/user/folder/subfolder/myfile.txt
zip.extractEntryTo("folder/subfolder/myfile.txt", "/home/user/", true, true);
// will extract the file myfile.txt from the archive to /home/user/myfile.txt
zip.extractEntryTo("folder/subfolder/myfile.txt", "/home/user/", false, true);
// will extract the file newname.txt from the archive to /home/user/myfile.txt
zip.extractEntryTo("folder/subfolder/myfile.txt", "/home/user/", false, true, "newname.txt");