在node中批量解压文件,并解压到对应的单独文件夹内
const fs =require('fs-extra')
const unzip = require("unzip-stream");
const path=require( 'path')
//定义自己的读取的文件路径
let url =`${think.ROOT_PATH}/www/img/`;
//获取文件夹所在的路径的所有下的所有文件
let imglist = fs.readdirSync(url);
imglist.forEach((item)=>{
//拼接url
let fileurl = `${url}${item}`
//判断是否是文件夹
let isState = fs.statSync(fileurl).isFile();
//判断该文件夹是否存在
// let isFile = fs.existsSync(fileurl);
/**拿到文件名不带后缀**/
//获取文件名称
let filename = path.basename(fileurl);
//获取文件后缀名称
let extname = path.extname(fileurl);
//拿到处理后的文件名
let result = filename.substring(0,filename.indexOf(extname));
/**拿到文件名不带后缀**/
if (isState ){
/**是文件**/
let fileurls = `${url}${result}`;
//判断同名文件夹是否存在
let isEmity = fs.existsSync(fileurls);
if (!isEmity){
//不存在创建文件夹
fs.mkdirSync(fileurls)
}
//解压文件,同名直接覆盖
fs.createReadStream(`${fileurl}`).pipe(unzip.Extract({ path:`${fileurls}` }));
}else {
//文件夹不予处理
console.log(item,'文件夹')
console.log(fileurl)
}
})