示例目录
在终端中执行即可
node index.js
// 第一步:引入 fs 文件系统模块
let fs = require("fs");
// 读取目标文件夹名称
const dirName = "./img";
// 文件后缀匹配规则
const reg = /(?<=[.])[a-z]+/;
// 统一文件名前缀
const fileName = "img";
// 第二步:读文件夹,获取文件名列表
let fileList = fs.readdirSync(dirName);
// 第三步:过滤出想要的文件类型
let resultList = fileList.reduce((pev, cur) => {
// 获取后缀名
const curPicType = cur.match(reg)[0];
if (["jpg", "JPG", "jpeg", "JPEG", "png", "PNG"].includes(curPicType)) {
pev.push(cur);
}
return pev;
}, []);
// 读取js
// let resultListjs = fileList.reduce((pev, cur) => {
// const curPicType = cur.match(reg)[0];
// if (["js"].includes(curPicType)) {
// let sss = fs.readFileSync(cur, "utf8");
// pev[cur] = sss;
// }
// return pev;
// }, {});
// 第四步:循环当前文件名列表,根据需要重写名字
for (let i = 0; i < resultList.length; i++) {
// 文件完整名称
const curFileName = resultList[i];
// 后缀名
const fileFormat = curFileName.match(reg)[0];
// 去掉后缀的原文件名
// const fileCode = curFileName.split(".")[0];
/**
* oldPath 原地址
* newPath 目标地址
* callback 回调
*/
const oldPath = `./${dirName}/${curFileName}`;
let newPath = "";
let n = fileName + "_" + i;
newPath = `${dirName}/${n}.${fileFormat}`;
fs.rename(oldPath, newPath, (err) => {
if (err) throw err;
console.log("修改成功!");
});
// 如果想根据不同条件,将文件分别放到不同的文件夹,按需更改 newPath 即可
}