node采用【child_process】实现Linux环境下压缩包自动解压

Ubuntu环境安装解压包

如果你不知道安装什么包,直接执行解压命令,Ubuntu会提示你安装的。

JS功能包

var fs = require("fs");
var exec = require('child_process').exec;

// unrar  <源文件.rar>  <解压文件夹路径>
exports.unrar = function(param){
    console.log("param:",param);
    var cmdStr = "rar x "+ 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,getMainFile);
            });
        } else {
            fs.mkdir(param.tgtFilePath,function(){  //创建目录
                exec(cmdStr,function(err,stdout,stderr){  //执行命令行
                    fs.readdir(param.filesPathInPro,getMainFile);
                });
            });
        }
    });
};
// unzip  <源文件.zip>  <解压文件夹解压文件夹路径>
exports.unzip = function(param){
    console.log("param:",param);
    var cmdStr = "unzip "+" "+param.zipFilePath +" -d "+ param.tgtFilePath;
    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,getMainFile);
            });
        } else {
            fs.mkdir(param.tgtFilePath,function(){  //创建目录
                exec(cmdStr,function(err,stdout,stderr){  //执行命令行
                    fs.readdir(param.filesPathInPro,getMainFile);
                });
            });
        }
    });
};

其中getMainFile是处理解压后的文件函数,也可以不处理,注释掉就OK了。

调用js功能包

  const exec = require('../common/exec');
  var zipFilePath = path.join(UserFilePath, "/" + file.name);
            var param = {
                zipFilePath: zipFilePath,
                tgtFilePath: path.join(UserFilePath, "/" + file_name),
                filesPathInPro: path.join(UserFilePath, "/" + file_name)
            };
            if (ext == "rar") {
                exec.unrar(param);
            }
            if (ext == "zip") {
                exec.unzip(param);
            }

注意其中各种路径的设置,按照自己的文件位置修改一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值