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模块

  1. var exec = require('child_process').exec; //引入child_process模块
  2.  
  3. exports.execCmd = function(cmdStr,next){
  4. exec(cmdStr,function(err,stdout,stderr){
  5. next({
  6. err:err,
  7. stdout:stdout,
  8. stderr:stderr
  9. });
  10. });
  11. }

3、封装成方法

rar解压缩:

  1. /*
  2. 方法名:rar解压缩
  3. 参数:
  4. password
  5. zipFilePath
  6. tgtFilePath
  7. 例如:
  8. var password ="20170313",
  9. zipFilePath ="D:/test/18_20170313.rar",
  10. srcFilePath = "D:/test/18_20170313";
  11. cmdStr = "rar x -P20170313 D:\test\18_20170313.rar D:\test\18_20170313 -y"
  12.  
  13. * */
  14. var fs = require("fs");
  15. var exec = require('child_process').exec;
  16.  
  17. exports.unrar = function(param,next){
  18. console.log("param:",param);
  19. var cmdStr = "rar x -P"+param.password+" "+param.zipFilePath+" "+param.tgtFilePath+" -y";
  20. console.log("cmd:",cmdStr);
  21. fs.exists(param.tgtFilePath, function(exists) { //判断路径是否存在
  22. //console.log(">> exists:",exists);
  23. if(exists) {
  24. exec(cmdStr,function(err,stdout,stderr){ //执行命令行
  25. fs.readdir(param.filesPathInPro,next);
  26. });
  27. } else {
  28. fs.mkdir(param.tgtFilePath,function(){ //创建目录
  29. exec(cmdStr,function(err,stdout,stderr){ //执行命令行
  30. fs.readdir(param.filesPathInPro,next);
  31. });
  32. });
  33. }
  34. });
  35. }
  1.  

rar压缩:

  1. /*
  2. 方法名:rar压缩
  3. 参数:
  4. password
  5. zipFilePath
  6. srcFilePath
  7. 例如:
  8. var password ="20170313",
  9. zipFilePath ="D:/test/18_20170313.rar",
  10. srcFilePath = "D:/test/18_20170313";
  11. cmdStr ="rar a -ep -P20170313 D:\test\18_20170313.rar D:\test\18_20170313"
  12. * */
  13.  
  14. var fs = require("fs");
  15. var exec = require('child_process').exec;
  16.  
  17. exports.rar = function(param,next){
  18. var cmdStr = 'rar a -ep -P'+param.password+' '+param.zipFilePath+' '+param.srcFilePath+' -y';
  19. console.log(">> cmdStr:",cmdStr);
  20. fs.exists(param.srcFilePath, function(exists) { //判断路径是否存在
  21. if(exists) {
  22. exec(cmdStr,next);
  23. } else {
  24. next({
  25. code:400,
  26. msg:"源文件找不到"
  27. })
  28. }
  29. });
  30. }
  1.  

nodejs rar/zip加密压缩、解压缩的更多相关文章

  1. 基于ICSharpCode.SharpZipLib.Zip的压缩解压缩

    原文:基于ICSharpCode.SharpZipLib.Zip的压缩解压缩 今天记压缩解压缩的使用,是基于开源项目ICSharpCode.SharpZipLib.Zip的使用. 一.压缩: /// ...

  2. mac系统中怎么打开rar/zip等压缩文件?

    平常使用mac的同学们,可能经常要接受下别人发过来的rar文件,可惜的时mac os x系统默认是不能打开rar文件(不知道以后苹果会支持rar不?),那么我们该如何去解圧rar文件,接下来我将介绍. ...

  3. Android zip文件压缩解压缩

    DirTraversal.java <P style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; WIDOWS: 2; TEXT-TRANSFORM ...

  4. zip unzip 压缩解压缩命令

    直接上例子: mkdir test1 touch test1/1.txt touch test1/2.txt zip -r test1.zip test1    #-r 参数是包含文件夹下的文件 un ...

  5. Python实现加密压缩成RAR或ZIP文件

    博主在前两篇博文分别介绍了加密RAR文件的解压https://www.cnblogs.com/kangbazi666/p/13646308.html和加密ZIP文件的解压https://www.cnb ...

  6. linux 系统下 zip 的加密压缩与解压缩命令

    1.加密压缩 [small@sun shine]# zip -rP king java.zip java adding: java/ (stored 0%) adding: java/default/ ...

  7. Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)

    1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...

  8. Linux的压缩/解压缩文件处理 zip & unzip

    Linux的压缩/解压缩命令详解及实例 压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip 另:有些服 ...

  9. C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密

    C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩   这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...

随机推荐

  1. 数组中的push()和pop()方法

    push()方法可以接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度. pop()方法是从数组末尾移除最后一项,减小数组的length值,然后返回移除的项. var arr = [ ...

  2. [Git] 关于refs/for/ 和refs/heads/

    转载自: http://lishicongli.blog.163.com/blog/static/146825902013213439500/ 1.     这个不是git的规则,而是gerrit的规 ...

  3. javascript(JQuery)元素操作

    html代码如下: <div id="picK"> <ul> <li style="float:left;width:90px;" ...

  4. python3读取html文件

    # htmlf=open('E:\\test2.html','r',encoding="utf-8") # htmlcont=htmlf.read() # print(type(h ...

  5. npm依赖管理:冗余,依赖树

    npm的依赖树查询:原理都是查询文件夹node_modules的结构.比如mac的node_modules位置在/usr/local/lib下.具体项目的node_modules位置位于项目根目录下. ...

  6. docker_usb开发软件部署

    1.docker镜像包  (备注:61提供,带桌面版本) rayosx2.0.2.tar 2.paho-mqtt dnf install git -y git clone https://github ...

  7. RTOS系统与Linux系统的区别

    RTOS是实时操作系统 Linux是时分系统,不过可以通过配置内核改成实时系统 分时操作系统 英文:Time-sharing Operating System  释义:使一台计算机同时为几个.几十个甚 ...

  8. 从C转到JAVA学习路之基本知识对比(转)

    转自:http://blog.csdn.net/andywxf01/article/details/53502615 我一直在用C开发,想转到Java时最容易想到的事就是把C里写的代码和功能用JAVA ...

  9. IntelliJ IDEA单元测试和代码覆盖率图解

    转载:http://blog.csdn.net/u011872919/article/details/11566713 本文将展示如何使用IntelliJ IDEA开发单元测试和分析覆盖率. 1 创建 ...

  10. Android RecyclerView 使用解析

    RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家能够通过导入support-v7对其进行使用.  据官方的介绍,该控件用于在有限的窗体中展示大量数据集.事实上这样功能的控件我们 ...