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

如何在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文件代码,方法一:(解压文件中文件名包含中文推荐使用)

代码中的:

entry.entryName = iconv.decode(entry.rawEntryName, 'utf8');

可以替换成(二选一)

entry.entryName = iconv.decode(entry.rawEntryName, 'gbk');

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

// 引入依赖
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文件代码,方法二:

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.压缩文件代码:(压缩文件的文件路径对应自己要压缩的文件夹路径即可,存放压缩文件的文件路径同理)

// 压缩文件成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;

压缩完成的目录结构: 

相关文章:

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

一、解压文件 1.安装依赖&#xff1a; 安装adm-zip依赖包&#xff1a;npm install adm-zip --save 安装iconv-lite依赖包&#xff1a;npm install iconv-lite --save 解压前的file文件夹结构&#xff1a; update-1.0.2.zip压缩包内容&#xff1a; 2.在depresssFile.js文件&…...

梦熊 CSP-S模拟赛 T3 youyou 的序列 II

原题链接 题目大意 给定一个长度为 n 的非负整数序列 a &#xff0c;初始时所有数字均被标记为蓝色&#xff0c;youyou 和 yy 轮流对序列 a 进行操作&#xff0c;由 youyou 开始。 • 如果当前是 youyou 的回合&#xff0c;那么他可以至多选择连续的 c 1 个数…...

记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置

服务端部署 # 提前拉取镜像 docker pull gitlab/gitlab-ce:17.5.0-ce.0docker run -d \ --name gitlab \ --hostname gitlab.test.cn \ -p 443:443 \ -p 88:80 \ -p 2222:22 \ --restartalways \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab …...

opencv-platform实现人脸识别

和同事接触了下甲方,对方算是一个资源整合的自由人&#xff0c;手里有项目&#xff0c;然后认识些开发就聊下有什么事情可以做的&#xff0c;对方聊了下做人脸签到&#xff0c;或者说人脸打开。就这方面我做了下简单的了解。做了个java小demo。 我们常用的人脸识别的摄像头屏幕…...

leetcode 有重复字符串的排列组合

1.题目要求: 2.题目代码&#xff1a; class Solution { public://运用回溯vector<string> result;string s;void backtricking(string S,vector<bool>& used){if(s.size() S.size()){result.push_back(s);return;}for(int i 0;i < S.size();i){if(i >…...

【大数据学习 | kafka】kafka的组件架构

broker:每个kafka的机器节点都会运行一个进程&#xff0c;这个进程叫做broker&#xff0c;负责管理自身的topic和partition&#xff0c;以及数据的存储和处理&#xff0c;因为kafka是集群形式的&#xff0c;所以一个集群中会存在多个broker&#xff0c;但是kafka的整体又不是一…...

Python基于TensorFlow实现简单循环神经网络回归模型(SimpleRNN回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 Simple RNN是一种基础的循环神经网络&#xff0c;它能够处理序列数据&#xff0c;例如文本、时间序…...

torch.isclose

torch.isclose是 PyTorch 中的一个函数&#xff0c;用于判断两个张量中的对应元素是否接近相等。 其函数签名为&#xff1a;torch.isclose(input, other, rtol1e-05, atol1e-08, equal_nanFalse)。 参数说明&#xff1a; input 和 other&#xff1a;要进行比较的两个张量。r…...

Python记录-字典

定义 Python 中的字典&#xff08;dictionary&#xff09;是一种内置的数据结构&#xff0c;用于存储键值对&#xff08;key-value pairs&#xff09;。字典中的每个键&#xff08;key&#xff09;都是唯一的&#xff0c;并且与一个值&#xff08;value&#xff09;相关联。键…...

python读取学术论文PDF文件内容

目录 1、PyPDF22、pdfplumber3、PyMuPDF4、pdfminer总结 1、PyPDF2 PyPDF2 是一个常用的库&#xff0c;可以用来读取、合并、分割和修改PDF文件。读取pdf内容&#xff1a; import PyPDF2# 打开PDF文件 with open(ELLK-Net_An_Efficient_Lightweight_Large_Kernel_Network_for…...

5550 取数(max)

经验值&#xff1a;2000 时间限制&#xff1a;1000毫秒 内存限制&#xff1a;128MB 庐阳区2020年信息学竞赛试题 不许抄袭&#xff0c;一旦发现&#xff0c;直接清空经验&#xff01; 题目描述 Description 盒子里面有N个球&#xff0c;每个球上都一个数。你每次可以取走一…...

Windows常用网络命令

ipconfig 功能&#xff1a;查看维护本地的IP地址 ipconfig 显示计算机中网络适配器的ip地址、子网掩码及默认网关。 ipconfig /all 显示所有网络适配器&#xff08;网卡、拨号连接等&#xff09;的完整tcp/ip配置信息。与不带参数的用法相比&#xff0c;它的信息更全更多&am…...

地磁传感器(学习笔记上)

在咱们地磁传感器里的开发板&#xff1a; 开发板上的地磁传感器型号是QMC5883L&#xff0c;它也是使用I2C与ESP32通信&#xff0c;I2C地址为0X0D。这个项目&#xff0c;我们使用地磁传感器QMC5883L计算方位角&#xff0c;最终&#xff0c;把开发板放平到桌子上&#xff0c;旋转…...

使用 NumPy 和 Matplotlib 进行高级数据可视化:实践指南

使用 NumPy 和 Matplotlib 进行高级数据可视化&#xff1a;实践指南 数据科学和工程实践中&#xff0c;NumPy 和 Matplotlib 是强大的组合工具。本文将进一步展示如何借助这两个库进行更复杂的可视化任务&#xff0c;例如创建多曲线、叠加图、动态可视化等场景。 一、环境准备…...

mysql 启动报错 ‘/var/run/mysqld/mysqld.sock‘

问题描述&#xff1a; Docker 拉取 Ubuntu镜像&#xff0c;启动ubuntu容器后 在里边安装mysql 当容器启动时&#xff0c;不将/var/lib/mysql 目录映射到宿主机时&#xff0c;mysql可以正常启动使用当容器启动时&#xff0c;将/var/lib/mysql 目录映射到宿主机后&#xff0c;my…...

JAVA基础:常用类 (习题笔记)

1&#xff0c;验证键盘输入的用户名不能为空&#xff0c;长度大于6&#xff0c;不能有数字。 提示&#xff1a;使用字符串String类的相关方法完成 package packagingClass;import java.util.Scanner;public class Exercises1 {//程序入口public static void main(String[] arg…...

element 按钮变形 el-button样式异常

什么都没动&#xff0c;element UI的按钮变形了&#xff0c;莫名其妙&#xff0c;连官网的也变形了&#xff0c;换了其它浏览器又正常&#xff0c; 难道这是element UI的问题&#xff1f;NO&#xff0c;是浏览器的插件影响到了&#xff01;去扩展插件里面一个个关闭扩展&#x…...

Windows/Linux(服务器)查看显卡的名称

文章目录 1. 使用 nvidia-smi&#xff08;适用于 NVIDIA 显卡&#xff09;2. 使用 wmic 命令&#xff08;Windows&#xff09; 1. 使用 nvidia-smi&#xff08;适用于 NVIDIA 显卡&#xff09; 如果服务器上安装了 NVIDIA 驱动程序&#xff0c;可以使用 nvidia-smi 工具来查看…...

算法基础 - 时间复杂度和空间复杂度(万字长文详解)

文章目录 前言什么是算法效率时间复杂度定义作用类比理解 空间复杂度定义作用类比理解 大O表示法为什么需要&#xff1f;定义计算步骤1. 计算基本操作的执行次数 T(n)2. 确定 T(n) 的数量级&#xff08;按规则&#xff09;3. 使用大O表示法表示时间复杂度 常见复杂度O(1)说明案…...

【K8S系列】Kubernetes 中 Service IP 地址和端口不匹配问题及解决方案【已解决】

在 Kubernetes 中&#xff0c;Service 是实现 Pod 之间和 Pod 与外部之间通信的关键组件。Service 的 IP 地址和端口配置不当可能导致应用无法正常访问。本文将详细分析 Service IP 地址和端口不匹配的问题&#xff0c;常见原因及其解决方案。 一、问题描述 Service IP 地址和…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...