如何使用nodejs将文件压缩成.rar?

rsl1atfo  于 2023-02-08  发布在  Node.js
关注(0)|答案(3)|浏览(170)

我有一个名为mytext.txt的文件,我想将此文件压缩为archive.rar。如何在nodejs中执行此操作?
我没有找到任何类似于rar的东西,只有zip

sigwle7e

sigwle7e1#

找到一个rar命令行实用程序,可以像这样执行

$ rar myfile.dat compressed.rar

Node.js可以执行命令行调用。(参见child_process.exec
给exec函数一个普通命令,它就能完成任务。

zwghvu4y

zwghvu4y2#

对于压缩单个文件,zlib 模块非常有用。

(function () {
'use strict';

  var zlib = require('zlib');
  var gzip = zlib.createGzip();
  var fs = require('fs');
  var inp = fs.createReadStream('mytext.txt');
  var out = fs.createWriteStream('mytext.txt.gz');

  inp.pipe(gzip).pipe(out);

}());
o75abkj4

o75abkj43#

不幸的是Nodejs不支持Rar压缩/解压缩,我对此也感到沮丧,所以我创建了一个名为"super-winrar"的模块,使处理nodejs中的Rar文件变得超级容易:)
看看吧:https://github.com/KiyotakaAyanokojiDev/super-winrar
示例创建文件"archive.rar"并附加"mytext.txt"文件:

const Rar = require('super-winrar');

// create a rar constructor with file path! (created if not exists)
const rar = new Rar('archive.rar');

// handle erros, otherwise will throw an exception!
rar.on('error', err => console.log(err.message));

rar.once('ready', async () => {
  await rar.append(['mytext.txt']);
});

相关问题