node修改名称
var fs = require('fs');
const events = require('events');
var path = require('path');init();
function init() {//要遍历的文件夹所在的路径const dirPath = path.resolve(__dirname, "data");//遍历目录fileDisplay(dirPath);
}/*** 文件遍历* @param dirPath 需要遍历的文件路径*/
async function fileDisplay(dirPath) {//根据文件路径读取文件,返回文件列表let fileNameArr = fs.readdirSync(dirPath);//拼接const pathArr = fileNameArr.map(filename => {return path.join(dirPath, filename);});while (pathArr.length > 0) {//取首端元素 并删除let thePath = pathArr.shift();//根据文件路径获取文件信息,返回一个fs.Stats对象let stats = fs.statSync(thePath);if (stats.isFile()) {let dirname = path.dirname(thePath);let basename = path.basename(thePath);let extName = path.extname(thePath).toLocaleLowerCase();if (extName === ".mp4") {var array = basename.match(/E\d{1,2}./);//console.log(array[0]);//处理let newName = `第${array[0].replace("E","").replace(".","")}集.mp4`;console.log(`开始处理文件${thePath}`);renameFile(dirname, basename, newName);//console.log(`完成处理文件${thePath}`);}}if (stats.isDirectory()) {fileNameArr = fs.readdirSync(thePath);let theSonPathArr = fileNameArr.map(filename => {return path.join(thePath, filename);});//将目录加入数组pathArr.push(...theSonPathArr);}}
}function renameFile(dirname, oldName, newName) {fs.rename(path.join(dirname, oldName), path.join(dirname, newName), function (err) {if (err) throw err;console.log(newName+'File Renamed.');});
}