• 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:	est18_20170313.rar D:	est18_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:	est18_20170313.rar D:	est18_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:"源文件找不到"
                })
            }
        });
    }
     
  • 相关阅读:
    20145220韩旭飞《网络对抗》第一周学习
    学号20145220假期复习
    最简单易懂的Idea搭建SSM项目过程和配置(文末有demo哦)
    Navicate快捷键
    String.format()方法
    tomcat点击startup.bat出现闪退
    Shiro使用总结
    layer弹出层icon图标记录
    传统javabean与spring中的bean的区别【转】
    在Spring + SpringMVC + mybatis架构的项目基础上集成Shiro
  • 原文地址:https://www.cnblogs.com/wuwanyu/p/7018714.html
Copyright © 2020-2023  润新知