写一个Nodejs脚本,遍历一个文件夹,如果存在同名且不同后缀的文件,就新建一个文件夹,名称就是同名的名称,将这些同名文件放在一起
时间: 2024-02-05 12:05:23 浏览: 74
好的,以下是一个实现这个功能的 Node.js 脚本:
```javascript
const fs = require('fs');
const path = require('path');
// 定义要遍历的文件夹路径
const folderPath = './test';
// 获取文件夹中所有文件的列表
const fileList = fs.readdirSync(folderPath);
// 将文件按名称分组
const fileMap = {};
fileList.forEach(filename => {
const nameWithoutExt = path.parse(filename).name;
if (!fileMap[nameWithoutExt]) {
fileMap[nameWithoutExt] = [];
}
fileMap[nameWithoutExt].push(filename);
});
// 遍历每个名称的文件,如果存在同名且不同后缀的文件,就新建一个文件夹,将这些文件放在一起
Object.keys(fileMap).forEach(nameWithoutExt => {
const filenames = fileMap[nameWithoutExt];
if (filenames.length > 1) {
const newFolderPath = path.join(folderPath, nameWithoutExt);
fs.mkdirSync(newFolderPath);
filenames.forEach(filename => {
fs.renameSync(path.join(folderPath, filename), path.join(newFolderPath, filename));
});
}
});
console.log('done');
```
这个脚本会按名称分组所有文件,然后遍历每个名称的文件,如果存在同名且不同后缀的文件,就新建一个文件夹,将这些文件放在一起。最终会在文件夹中生成同名的文件夹,将同名且不同后缀的文件放入其中。
阅读全文