1

Node JS で tbz ファイルを抽出してディスクに保存する方法を知りたいです。サンプルコードをいただければ幸いです。

このようなもので試してみました:

var zlib = require('zlib');
var fs = require('fs');

var file = fs.createReadStream('/tmp.tbz');
var zip = file.pipe(zlib.createUnzip());

zip.on("data", function(data) {
  console.log(data);
});

zip.on("error",function(error){
    console.log(error);
});

しかし、最終的には次のようになります。

{ [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' } 

これを正しく行ったかどうかはわかりません。

4

2 に答える 2

1

zlib、node-tarなどでテストしたため、tbzファイルを抽出するためのノードライブラリを見つけることができませんでした。最終的には、「tar」コマンドを使用してこのハックを実行します。

var util  = require('util'),
    spawn = require('child_process').spawn,
    ls    = spawn('tar', ['-C','/home/tony/Desktop','-xvf', '/home/tony/Desktop/tmp.tbz']);

ls.stdout.on('data', function (data) {
  console.log(data);
});

ls.on('exit', function (code) {
  console.log('child process exited with code ' + code);
});

より良い答えが来るまで、私は一時的に私の答えを受け入れます。

于 2012-09-23T05:29:26.353 に答える