当前位置: 首页 > article >正文

nodejs实现文件/目录的压缩和解压

在nodejs里实现文件/目录压缩和解压可以通过 compressing 库来实现,compressing 库目前支持多种压缩格式:tar、gzip、tgz、zip。

安装

npm install compressing

使用的时候需要导入

const compressing = require('compressing');

压缩/解压文件

压缩单个文件

compressing.zip.compressFile('/Users/fkong/test/compressing-demo/package.json', '/Users/fkong/test/package.json.zip')
  .then(() => {
    console.log('success');
  })
  .catch(err => {
    console.log(err);
  });

如果要压缩多个文件,可以使用stream的方式,如下:

const zipStream = new compressing.zip.Stream();
zipStream.addEntry('/Users/fkong/test/compressing-demo/package.json');
zipStream.addEntry('/Users/fkong/test/compressing-demo/package-lock.json');
const destStream = fs.createWriteStream('/Users/fkong/test/destination.zip');
zipStream.pipe(destStream)
  .on('finish', () => {
    console.log('success');
  })
  .on('error', () => {
    console.log('failure');
  });

解压文件到指定目录

compressing.zip.uncompress('/Users/fkong/test/package.json.zip', '/tmp')
  .then(() => {
    console.log('success');
  })
  .catch(err => {
    console.log(err);
  });

压缩/解压目录

压缩一个目录

compressing.zip.compressDir('/Users/fkong/test/compressing-demo', '/Users/fkong/test/compressing-demo.zip')
  .then(() => {
    console.log('success');
  })
  .catch(err => {
    console.log(err);
  });

解压文件到指定目录

compressing.zip.uncompress('/Users/fkong/test/compressing-demo.zip', '/tmp')
  .then(() => {
    console.log('success');
  })
  .catch(err => {
    console.log(err);
  });

http://www.kler.cn/news/156165.html

相关文章:

  • 【微信小程序】上传头像 微信小程序内接小程序客服
  • C++ day51 买卖股票最佳时期
  • 计算机网络——习题
  • 【PTA-C语言】编程练习3 - 循环结构Ⅱ
  • 安装配置JDK1.8
  • 单例模式的实现
  • 字符串转换整数
  • 一个完整的手工构建的cuda动态链接库工程 03记
  • SQL Server 2016(创建数据表)
  • qt-C++笔记之识别点击鼠标右键、点击位置以及Qt坐标系详解
  • flutter-web中使用js工具类
  • Linux系统配置深度学习环境之cudnn安装
  • 40 mysql join 的实现
  • jmeter下载地址
  • [Java] 模拟Jdk 以及 CGLib 代理原理
  • 网络接口规范
  • springBoot整合task
  • uniapp中uni.navigateBack返回后刷新页面数据
  • 线程池大小设置多少,比较合适?
  • 如何从 Jira 成功迁移到极狐GitLab,看这个就够了!
  • [leetcode 哈希表] 模版
  • AtCoder Beginner Contest 331 题解 A-E
  • postgreSQL 查询所有模式的语句
  • 算法设计与实现--动态规划篇
  • Matlab和python详解数独谜题问题
  • 2、设计在链式存储结构上交换二叉树中所有结点左右子树的算法。
  • MySQL进阶部分
  • C语言--每日选择题--Day34
  • (C)一些题6
  • 如何快速看懂市场行情?