如何在Node.js中执行解压缩文件操作

一、解压文件

1.安装依赖:

安装adm-zip依赖包:npm install adm-zip --save

安装iconv-lite依赖包:npm install iconv-lite --save

解压前的file文件夹结构:

update-1.0.2.zip压缩包内容:

2.在depresssFile.js文件,解压zip文件代码,方法一:(解压文件中文件名包含中文推荐使用)

代码中的:

javascript 复制代码
entry.entryName = iconv.decode(entry.rawEntryName, 'utf8');

可以替换成(二选一)

javascript 复制代码
entry.entryName = iconv.decode(entry.rawEntryName, 'gbk');

文件的路径可以写绝对路径也可以写相对路径,绝对路径不容易错,相对路径是depresssFile.js文件到update-1.0.2.zip解压文件的位置

javascript 复制代码
// 引入依赖
const AdmZip = require('adm-zip');
const iconv = require('iconv-lite');

// 待解压zip文件所在的路径
var file = 'D:/node/LocalLibrary/file/update-1.0.2.zip';
// 解压后存放的文件夹
var target = 'D:/node/LocalLibrary/file';

// 方法1:解压zip文件
function decompressFile1(file, target) {
    const zip = new AdmZip(file);
    var zipEntries = zip.getEntries();
    for (var i = 0; i < zipEntries.length; i++) {
        var entry = zipEntries[i];
        entry.entryName = iconv.decode(entry.rawEntryName, 'utf8');
    }
    zip.extractAllTo(target, true);
}

// 执行函数
decompressFile1(file, target);

// 导出(在其他js文件引用decompressFile函数需要添加以下代码)
module.exports = decompressFile1;

解压zip文件代码,方法二:

javascript 复制代码
const AdmZip = require('adm-zip');

// 待解压zip文件所在的路径
var file = 'D:/node/LocalLibrary/file/update-1.0.2.zip';
// 解压后存放的文件夹
var target = 'D:/node/LocalLibrary/file';

// 方法2:解压zip文件
function decompressFile2(file, target) {
    const zip = new AdmZip(file);
    zip.extractAllTo(target, true);
}

// 调用
decompressFile2(file, target);

// 导出
module.exports = decompressFile2;

解压后的file文件夹结构:

二、压缩文件

1.压缩文件代码:(压缩文件的文件路径对应自己要压缩的文件夹路径即可,存放压缩文件的文件路径同理)

javascript 复制代码
// 压缩文件成zip格式
const AdmZip = require('adm-zip');

// filePath: 要压缩的文件路径
var filePath = 'D:/node/LocalLibrary/file/update-1.0.2/route/route.js';
// outputPath: 压缩后的文件路径
var outputPath = 'D:/node/LocalLibrary/file/route.zip';

// 压缩文件
function compressFile(filePath, outputPath) {
  const zip = new AdmZip();
  zip.addLocalFile(filePath);
  zip.writeZip(outputPath);
}

// 调用函数
compressFile(filePath, outputPath);

// 导出函数
module.exports = compressFile;

压缩完成的目录结构:

相关推荐
_Kayo_2 小时前
Node.JS 学习笔记8
笔记·学习·node.js
six+seven3 小时前
Node.js内置模块fs
前端·node.js
wuhen_n3 小时前
Webpack vs Vite:前端构建工具对比
前端·webpack·node.js·vite
Gogo8164 小时前
Node.js 后端架构的“隐秘角落”:从 Fastify 引擎到类型系统的博弈
架构·node.js
本妖精不是妖精4 小时前
CentOS 7 安装 Node.js v18.x 完整教程
linux·centos·node.js
摇滚侠1 天前
Node.js 零基础教程,Node.js 和 NPM 的安装与使用
前端·npm·node.js
Ashley_Amanda1 天前
Node.js 服务搭建:从零到部署的生产级指南
node.js
天远云服1 天前
Node.js实战:天远车辆出险查询API接口调用流程、代码接入与场景应用
大数据·node.js
摇滚侠1 天前
安装完 node.js 以后,需不需要修改全局安装包的目录,我觉的不需要修改。网上有很多教程让修改全局包安装目录和配置环境变量,我觉的这两步都多余。
node.js
muddjsv2 天前
Node.js 开发上手指南:从环境搭建到实战开发
node.js