陈广安个人网站
会写代码的咸鱼
陈广安个人网站阿里云盘资源
陈广安个人网站网盘资源搜索
“ 梦想还是要有的,万一实现了呢!”
— 马云

nodejs批量处理本地文件

创建时间:2023-06-14

nodejs批量处理本地文件

let fs = require('fs');//引用文件系统模块
   
let ext = {
    readFileList: function(path, filesList) {
        filesList = filesList || [];
        let files = fs.readdirSync(path);
        files.forEach(function (filename, index) {
            //var stat = fs.statSync(path + filename);//读取的文件信息
            if (fs.statSync(path + filename).isDirectory()) {//isDirectory 判断是不是目录
                //递归读取文件
                ext.readFileList(`${path}${filename}/`, filesList);
            } else {
                filesList.push({
                    path,//路径
                    filename,//名字
                });
            }
        })
        return filesList
    },
    //修改文件名称
    rename: function(oldPath, newPath) {
        fs.rename(oldPath, newPath, function(err) {
            if (err) {
                throw err;
            }

        });
    },
    //批量修改文件名称
    getChangeFiles: function (path) {
        let filesList = this.readFileList(path);

        filesList.forEach((item,i) => {
            // // 使用rename方法进行重命名
            let oldPath = item.filename;
            let newPath = `${i}`
            ext.rename(item.path + oldPath, item.path + newPath);
            item.name = newPath
        });
        console.log(filesList)
        let str = encodeURIComponent(JSON.stringify(filesList));
        fs.writeFile('./v.txt',str,(res)=>console.log(res))
    },
    //批量恢复文件名称
    setChangeFiles: function () {
        let files = fs.readFileSync('./v.txt');
        let list = JSON.parse(decodeURIComponent(files.toString()));
        list.forEach(v=>{
            console.log(v,v.path + v.name,v.path + v.filename)
            fs.rename(v.path + v.name, v.path + v.filename, function(err) {
                if (err) {
                    throw err;
                }
   
            });
        })
    },
    checkType:function(type){
        if(type == 1){
            ext.setChangeFiles();
        }else{
            ext.getChangeFiles(`D:\\web\/v\/`);
        }
    }
}
//1 恢复
ext.checkType(2);