Я пытаюсь извлечь файлы .rar с помощью node.js в Windows 8.1. Есть ли хороший способ сделать это?
заранее спасибо
Я пытаюсь извлечь файлы .rar с помощью node.js в Windows 8.1. Есть ли хороший способ сделать это?
заранее спасибо
var Unrar = require('unrar'),
fs = require('fs'),
archive = new Unrar('t.rar');
archive.list(function(err, entries) {
for (var i = 0; i < entries.length; i++) {
var name = entries[i].name;
var type = entries[i].type
if (type !== 'File') {
fs.mkdirSync(name)
}
}
for (var i = 0; i < entries.length; i++) {
var name = entries[i].name;
var type = entries[i].type;
if (type !== 'File') {
continue;
}
var stream = archive.stream(name);
try {
fs.writeFileSync(name, stream);
} catch (e) {
throw e;
}
}
});
Пожалуйста, проверьте unrar, это может помочь
*Этот скрипт протестирован на Linux Ubuntu
const unrarp = require('unrar-promise');
unrarp
.extractAll('rar-file-path', 'extract-directory')
.then(result => {
cb(null, result);
})
.catch(err => {
cb(err);
});
Вы также можете использовать модуль DecompressZip для извлечения файлов zip/rar.Документация и установка Decompress-zip а>
var DecompressZip = require('decompress-zip');
var unzipper = new DecompressZip(filename)
unzipper.on('error', function (err) {
console.log('Caught an error');
});
unzipper.on('extract', function (log) {
console.log('Finished extracting');
});
unzipper.on('progress', function (fileIndex, fileCount) {
console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount);
});
unzipper.extract({
path: 'some/path',
filter: function (file) {
return file.type !== "SymbolicLink";
}
});