nodejs rar/zip加密压缩、解压缩
1、shell/cmd命令行压缩解压缩
(1)zip压缩解压缩
zip压缩:zip -rP{密码} <目标文件.zip> <源文件> //默认覆盖现有文件
zip解压缩:zip -oP{密码} <源文件.zip> //默认覆盖现有文件
(2)rar压缩解压缩
说明: linux需要下载rarlinux,然后压缩,make编译后,即可使用。
rar压缩:rar a -p{密码} <目标文件.rar> <源文件> -y //默认覆盖现有文件
例如:rar a -p123456 abc.rar abc
rar解压缩:rar x -p{密码 } <源文件.rar> -y //保留源文件路径,默认覆盖现有文件
例如:rar x -p123456 abc.rar -y
2、如何通过nodejs执行shell/cmd命令
说明:通过child_process模块
var exec = require('child_process').exec; //引入child_process模块
exports.execCmd = function(cmdStr,next){
exec(cmdStr,function(err,stdout,stderr){
next({
err:err,
stdout:stdout,
stderr:stderr
});
});
}
3、封装成方法
rar解压缩:
/*
方法名:rar解压缩
参数:
password
zipFilePath
tgtFilePath
例如:
var password ="20170313",
zipFilePath ="D:/test/18_20170313.rar",
srcFilePath = "D:/test/18_20170313";
cmdStr = "rar x -P20170313 D:\test\18_20170313.rar D:\test\18_20170313 -y" * */
var fs = require("fs");
var exec = require('child_process').exec; exports.unrar = function(param,next){
console.log("param:",param);
var cmdStr = "rar x -P"+param.password+" "+param.zipFilePath+" "+param.tgtFilePath+" -y";
console.log("cmd:",cmdStr);
fs.exists(param.tgtFilePath, function(exists) { //判断路径是否存在
//console.log(">> exists:",exists);
if(exists) {
exec(cmdStr,function(err,stdout,stderr){ //执行命令行
fs.readdir(param.filesPathInPro,next);
});
} else {
fs.mkdir(param.tgtFilePath,function(){ //创建目录
exec(cmdStr,function(err,stdout,stderr){ //执行命令行
fs.readdir(param.filesPathInPro,next);
});
});
}
});
}
rar压缩:
/*
方法名:rar压缩
参数:
password
zipFilePath
srcFilePath
例如:
var password ="20170313",
zipFilePath ="D:/test/18_20170313.rar",
srcFilePath = "D:/test/18_20170313";
cmdStr ="rar a -ep -P20170313 D:\test\18_20170313.rar D:\test\18_20170313"
* */ var fs = require("fs");
var exec = require('child_process').exec; exports.rar = function(param,next){
var cmdStr = 'rar a -ep -P'+param.password+' '+param.zipFilePath+' '+param.srcFilePath+' -y';
console.log(">> cmdStr:",cmdStr);
fs.exists(param.srcFilePath, function(exists) { //判断路径是否存在
if(exists) {
exec(cmdStr,next);
} else {
next({
code:400,
msg:"源文件找不到"
})
}
});
}
nodejs rar/zip加密压缩、解压缩的更多相关文章
- 基于ICSharpCode.SharpZipLib.Zip的压缩解压缩
原文:基于ICSharpCode.SharpZipLib.Zip的压缩解压缩 今天记压缩解压缩的使用,是基于开源项目ICSharpCode.SharpZipLib.Zip的使用. 一.压缩: /// ...
- mac系统中怎么打开rar/zip等压缩文件?
平常使用mac的同学们,可能经常要接受下别人发过来的rar文件,可惜的时mac os x系统默认是不能打开rar文件(不知道以后苹果会支持rar不?),那么我们该如何去解圧rar文件,接下来我将介绍. ...
- Android zip文件压缩解压缩
DirTraversal.java <P style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; WIDOWS: 2; TEXT-TRANSFORM ...
- zip unzip 压缩解压缩命令
直接上例子: mkdir test1 touch test1/1.txt touch test1/2.txt zip -r test1.zip test1 #-r 参数是包含文件夹下的文件 un ...
- Python实现加密压缩成RAR或ZIP文件
博主在前两篇博文分别介绍了加密RAR文件的解压https://www.cnblogs.com/kangbazi666/p/13646308.html和加密ZIP文件的解压https://www.cnb ...
- linux 系统下 zip 的加密压缩与解压缩命令
1.加密压缩 [small@sun shine]# zip -rP king java.zip java adding: java/ (stored 0%) adding: java/default/ ...
- Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)
1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...
- Linux的压缩/解压缩文件处理 zip & unzip
Linux的压缩/解压缩命令详解及实例 压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip 另:有些服 ...
- C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密
C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...
随机推荐
- react使用引入svg的icon;svg图形制作
由于手头的icon有限,需要使用更多的图标,就得找外援: 1.react安装icon插件,使用插件里已经有的图标 https://react-icons.netlify.com/#/ React Ic ...
- 一起來玩鳥 Starling Framework(9)Particle
最後,來看看Starling裡一個很炫的功能:Particle.Particle屬於extension,所以要另外下載檔案:Starling-Extension-Particle-System.下載之 ...
- 【AS3 Coder】任务九:游戏新手引导的制作原理(下)
在上一篇教程中,我们了解了一套我自创的新手引导管理框架的使用原理,那么在本篇教程中,我们将考虑新手引导制作中可能遇到的一些棘手问题及探讨其解决方案.Are you ready my baby? Let ...
- Yii2系列教程七:Behaviors And Validations
这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...
- java源码阅读StringBuilder
1类签名与注释 public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializab ...
- 【重点突破】—— Vue2.0 transition 动画Demo实践填坑
前言:vue1.0版本和2.0版本的过渡系统改变是很大的,具体请详看文档介绍.本文转载自郭锦荣的博客,一共列举了四种transition的使用实践,分别是css过渡.css动画.javascript钩 ...
- android 开发者的个人博客集
1. http://stormzhang.com/posts.html //不少的好的工具与建议
- 在 Word 中的受支持的区域设置标识符的列表
这篇文章包含当前可用的区域设置 ID (LCID) 语言代码的列表. 概要 这篇文章包含当前可用的区域设置 ID (LCID) 语言代码的列表. 区域设置 ID (LCID): 由 Microso ...
- 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比
http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...
- .net错误处理机制
原地址:http://blog.csdn.net/lxbg90058/article/details/5651767 没有不出错的软件 从不出错的软件从某种程度上讲是不可能的! 和普通人的观念相反,创 ...