7
var targz = require('tar.gz');
var extract = new targz().extract(targzFile , destnDir, function(err){
if(err)
     console.log(err);
console.log('The extraction has ended :'+counter);
});

上記のコードは targzFile を destnDir に抽出しますが、targzFile から単一のファイルを抽出したいと考えています。

前もって感謝します。

4

3 に答える 3

15

答えに興味がある人は、ストリームとモジュールtar-streamを使用して可能です。アーカイブarchive.tar.gzからdocuments.jsonというファイルを抽出する完全な例を次に示します。

var tar = require('tar-stream');
var fs = require('fs');
var zlib = require('zlib');

var extract = tar.extract();
var data = '';

extract.on('entry', function(header, stream, cb) {
    stream.on('data', function(chunk) {
    if (header.name == 'documents.json')
        data += chunk;
    });

    stream.on('end', function() {
        cb();
    });

    stream.resume();
});

extract.on('finish', function() {
    fs.writeFile('documents.json', data);
});

fs.createReadStream('archive.tar.gz')
    .pipe(zlib.createGunzip())
    .pipe(extract);
于 2015-10-02T22:09:22.823 に答える