方法一:使用node-unzipper 加密压缩包的解压,这个的话这个博客上写的很好,我开始就是用他的方法做的

上诉方法有个很大的缺陷,博主也指出来了,就是加密解压大文件会很慢,这个我测试的时候,发现一个不大的文件(解压前1M多,解压后5M左右)也要花费1,2分钟,显然这个效果有点难接受,后面尝试找了很多方法都不太满意,加密解压的第三方模块比较慢,后面发现在本地解压还是挺快的,就想到用内部进程开个cmd命令调用winrar.exe去解压,后面摸索着实现了,记录下提供给后面需要的同学,这个方法可能存在其他的一些缺陷,但是解压速度已经达到了可以接受的范围。

方法二:调用cmd命令调用winrar.exe实现解压。

封装一个cmd解压命令方法 unzipCMD.js (解压命令参数可自行调改 ,可在cmd中查看 C:\Program Files\WinRAR>rar.exe -?     C:\Program Files\WinRAR>unrar.exe -?)

const exec = require('child_process').exec
//cmdPath:winrar.exe路径
//zipPath:压缩包文件
//outPath:解压文件目录
//加密密码
function unzipCmd (cmdPath,zipPath,outPath,pwd) {// 任何你期望执行的cmd命令,ls都可以let cmdStr1 = 'WinRAR.exe -ibck -y x -t -p'+pwd+' "'+zipPath+'"  "'+outPath+'"'//let cmdPath = cmdPath// 子进程名称console.log(cmdStr1);let workerProcessreturn runExec(cmdStr1)function runExec (cmdStr) {return new Promise((_resolve, _reject) => { var _result = 1;workerProcess = exec(cmdStr, { cwd: cmdPath })// 打印正常的后台可执行程序输出workerProcess.stdout.on('data', function (data) {console.log('stdout: ' + data)})// 打印错误的后台可执行程序输出workerProcess.stderr.on('data', function (data) {console.log('stderr: ' + data)_result = 0;_reject();})// 退出之后的输出workerProcess.on('close', function (code) {console.log('out code:' + code)_resolve(_result)})});}
}module.exports = {"unzipCmd": unzipCmd
};

调用方法(以electron子页面调用为例)

<!DOCTYPE html>
<html lang="en"><head><title>myapp</title><script>window.$ = window.jQuery = require("./js/jquery.min");</script>
</head><body><p>demo</p><script>var fs= require("fs")var unzipCMD = require('./unzipCMD');$(function(){var outPath = 'E:/Node_js/demo';//文件夹路径是否需要创建if (!fs.existsSync(outPath)) {fs.mkdirSync(outPath);}unzipCMD.unzipCmd("C:/Program Files/WinRAR",'E:/Node_js/demo/xxx.zip', outPath, "abc").then(function (e) {console.log(e);})  }</script>
</body></html>

若是存在安全性错误提示,可以参考下面的配置

win = new BrowserWindow({ width: 1200, height: 600 ,webPreferences: { //js交互nodeIntegration: true, enableRemoteModule:true,webSecurity: false, //禁用同源策略 plugins: true, //是否支持插件  nativeWindowOpen: true, //是否使用原生的window.open() webviewTag: true, //是否启用 <webview> tag标签 sandbox: false,    enableRemoteModule:true,},})process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'

nodejs/electron 解压加密zip 压缩包方法相关推荐

  1. python解压加密zip文件_Python:解压缩前检测一个zip文件否为加密,两种算法。

    前一篇文章介绍了如何用python自动解压缩加密的zip文件, 但是有一个问题,在服务器端脚本在解加密zip文件之前,需要检测其是否是加密文件,若是,则询问密码,结合密码解压缩:如果不是,则则直接解压 ...

  2. android 解压加密zip,zip压缩解压加密器

    zip压缩解压加密器是一款非常好用的手机文件压缩解压应用软件,zip压缩解压加密器app为用户提供了各种文件压缩功能,可以批量操作,一键解压文件.感兴趣的朋友欢迎使用西西下载! 基本内容 zip压缩解 ...

  3. android解压rar方法,安卓手机如何解压rar/zip/7z等压缩包 详细图解教程

    由于宅男吧论坛的资源大部分是通过 不过教程最后,关于(7z.001.7z.002之类的分卷文件),像这种分卷文件, 当时想着软件都是"教科式"操作,应该一看就会用了,可是依旧有部分 ...

  4. java实现上传zip解压及判断压缩包文件夹功能

    转自:https://blog.csdn.net/qq_17025903/article/details/80408180#commentBox 直接上Service,通过代码看思路贯穿整个功能,很多 ...

  5. 压缩解压:tar zip unzip 7z|7za rar

    tar -c|x|u|r|t[z|j][v] -f <归档文件> [未打包文件] 将多个文件打包为一个归档文件,可以在打包的同时进行压缩.支持的格式为tar(归档).gz(压缩).bz2( ...

  6. 解压rar/zip工具类

    工作中需要上传压缩包,后台需要对压缩包进行解压,并在边解压边查找指定文件,并保存到list中. 有关判断是rar还是zip的类: package com.cykj.reports.util;impor ...

  7. python不解压读取zip压缩包图片

    python不解压读取zip压缩包图片/文件 限于电脑上空间不够,没有办法将上百G的数据集解压到电脑上,因此需要一种方法能够直接读取压缩包内的图片进行训练. 首先,代码如下: #!/usr/bin/e ...

  8. 实用技巧分享——用Python解压复杂zip文件

    使用过Python中的标准库zipfile解压过zip格式压缩包的朋友们,可能遇到过,当压缩文件中的目录或文件名中包含中文等常见unicode字符时,典型如下面的例子: 使用zipfile的extra ...

  9. win7怎么解压rar文件_win7解压rar文件的方法

    大家知道win7怎么解压rar文件?rar是一种常用的文件压缩与归档的私有格式,用于数据压缩与归档打包.加快传输速度,我们都会将文件进行压缩.但最近有Win7系统用户反映收到rar文件,却不知道w怎么 ...

最新文章

  1. vue方法传值到data_vue组件传值的几种方式
  2. maven运行时的配置及命令详解
  3. RHCE是否还值得考取?
  4. 用python selenium实现一个简单的考试系统的自动做题
  5. windows 加域
  6. Java异常处理(2)--异常处理机制及自定义异常
  7. android时间戳字体,Android获取当前时间戳?
  8. python怎么改变字体大小_python IDLE 背景以及字体大小的修改方法
  9. 谐波合成法matlab,基于Kaimal谱采用谐波合成法生成脉动风场
  10. 八年测开经验面试28K公司后,吐血整理出高频面试题和答案
  11. centos7下发邮件给自己的QQ邮箱
  12. 关于网络超时时间那些事
  13. pe不认服务器硬盘,WINPE认不出硬盘或移动硬盘怎么办?
  14. 苹果cms大橙子和B站模板教程
  15. kotlin 开发桌面应用_2020-21年Kotlin应用开发十大公司
  16. 【Python 3.7】分子运动:修改 rw_visual.py,将其中的 plt.scatter() 替换为 plt.plot() 。为 模拟花粉在水滴表面的运动路径
  17. 【风口浪尖】徽剑万言书直指蛮子薛身份 “发家史”
  18. Windows查看ios手机日志
  19. matlab导出图片为pdf时警告图窗太大解决方法
  20. 社会工程学在***中的应用--一个密码引发的“血案”

热门文章

  1. canvas 多个小球绕椭圆轨道转动
  2. 麦克风阵列技术-统计视角观察
  3. 跟 ofo,说最后一声再见
  4. 数据处理项目Postmortem
  5. AtCoder Beginner Contest 191 A~D题解
  6. 全球顶尖技术会议QCon上海2013开幕在即
  7. ssm+mysql护理质量考核系统微信小程序-计算机毕业设计源码03644
  8. 我用EXCEL VBA制作了一个成绩管理系统,请各位多多指导!
  9. 数据结构(逻辑结构与物理结构)
  10. 商品进销差价_商品进销差价帐务处理流程!干货