You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用node-7z-archive在Node.js中创建并提取加密Zip包

使用node-7z-archive实现带密码保护的文件夹压缩与提取

第一步:安装依赖

先安装node-7z-archive包:

npm install node-7z-archive

替换原archiver代码:加密压缩文件夹

下面是替换后的加密压缩实现,完全匹配你原代码的文件夹打包逻辑,同时添加密码保护:

const fs = require('fs');
const { SevenZipArchive } = require('node-7z-archive');

const sourceFolder = 'create_zip'; // 替换为实际文件夹路径
const zipFileName = 'output.zip';
const password = 'your-secure-password'; // 设置自定义加密密码

// 创建SevenZipArchive实例,配置密码、压缩级别和格式
const archive = new SevenZipArchive(zipFileName, {
  password,
  compressionLevel: 9, // 和原代码zlib级别9的压缩强度一致
  format: 'zip'
});

// 添加整个文件夹到压缩包,第二个参数false表示不保留外层根目录(和原archiver行为一致)
archive.addDirectory(sourceFolder, false);

// 执行压缩并处理结果
archive.create()
  .then(() => {
    console.log('带密码保护的Zip压缩包已创建');
  })
  .catch((err) => {
    console.error('压缩出错:', err);
    throw err;
  });

提取加密Zip文件

下面是提取带密码保护的Zip文件的实现:

const { SevenZipArchive } = require('node-7z-archive');

const zipFileName = 'output.zip';
const extractDir = 'extracted_files'; // 指定提取目标目录
const password = 'your-secure-password'; // 对应压缩时设置的密码

// 创建SevenZipArchive实例并传入密码
const archive = new SevenZipArchive(zipFileName, { password });

// 执行提取操作
archive.extract(extractDir)
  .then(() => {
    console.log('加密Zip文件已成功提取到', extractDir);
  })
  .catch((err) => {
    console.error('提取出错:', err);
    throw err;
  });

关键说明

  • 密码配置:通过实例化时的password参数传入,直接支持Zip格式的密码加密
  • 压缩级别对齐:compressionLevel:9和原archiver的zlib: { level:9 }压缩强度一致
  • 文件夹结构匹配:addDirectory的第二个参数false确保压缩包内不包含外层根目录,和你原代码的行为完全一致
  • 异步逻辑优化:基于Promise的API相比原流事件监听,代码更简洁易维护

内容的提问来源于stack exchange,提问作者Varun Suryavanshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:58:11