如何使用节点js从tar.gz压缩文件中提取单个文件

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提取单个文件。

提前致谢。

对于任何对此答案感兴趣的人,都可以使用stream和模块焦油stream 。 这里是一个完整的例子,从archive 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);