Как извлечь файлы .rar в node.js?

Я пытаюсь извлечь файлы .rar с помощью node.js в Windows 8.1. Есть ли хороший способ сделать это?

заранее спасибо


person Mr Cold    schedule 17.08.2015    source источник
comment
Я бы сослался на следующий ответ stackoverflow.com/a/27450112/2824993   -  person cdurth    schedule 17.08.2015
comment
@cdurth есть ли другой способ, который не использует Rar, который является программным обеспечением с закрытым исходным кодом? Я уже пробовал это, но возникает другая проблема: после того, как я загружаю rar-файл с помощью http.get и запускаю этот код, он говорит, что файл, который я пытаюсь извлечь, не является rar-файлом, хотя это явно rar-файл.   -  person Mr Cold    schedule 17.08.2015


Ответы (3)


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

person hussam    schedule 17.08.2015

РАР

unrar-обещание

 const unrarp = require('unrar-promise');   
      unrarp
      .extractAll('rar-file-path', 'extract-directory')
      .then(result => {
        cb(null, result);
      })
      .catch(err => {
        cb(err);
      });
person xcyxiner    schedule 05.01.2019