node.js - NodeJS 提取 tbz 文件并保存到磁盘

标签 node.js

想知道如何使用 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' } 

不确定我是否正确执行了此操作。

最佳答案

当我使用 zlib、node-tar 等进行测试时,未能找到用于提取 tbz 文件的 Node 库。最终使用“tar”命令实现了此 hack。

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);
});

我暂时接受我的答案,直到更好的答案出现。

关于node.js - NodeJS 提取 tbz 文件并保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12545585/

相关文章:

node.js - Express.js 中间件分支或多个 app.routes 中间件

node.js - Express/Node 是否需要 View 引擎?

javascript - 如何使用 Puppeteer 暂停并等待用户输入?

javascript - 在释放 zalgo 的 Node.js 设计模式中,为什么异步路径是一致的?

javascript - Sequelize Eeager 加载错误 - 无法弄清楚包括

javascript - iisnode 500.21 处理程序 "iisnode"在其模块列表中包含错误模块 "iisnode"

node.js - Express-Generator - 包括 socket.io (bin/www)

javascript - 如何在运行在 node.js 上的脚本中使用 jsdoc?

node.js - 抓取重定向的页面

javascript - Bluebird promise : why it doesn't timeout?