写Nodejs脚本,检索脚本所在的目录和子目录,如果出现后缀名为mobi的文件,就将文件所处的文件夹移动到脚本文件所在目录下的123文件夹里
时间: 2024-03-29 22:40:14 浏览: 122
好的,可以使用Node.js的`fs`模块和`path`模块来完成这个任务。以下是实现的代码:
```javascript
const fs = require('fs');
const path = require('path');
const rootDir = __dirname; // 脚本所在的目录
const targetDir = path.join(rootDir, '123'); // 目标目录
function moveMobiFiles(dir) {
fs.readdir(dir, (err, files) => {
if (err) throw err;
files.forEach(file => {
const filePath = path.join(dir, file);
fs.stat(filePath, (err, stats) => {
if (err) throw err;
if (stats.isDirectory()) {
moveMobiFiles(filePath); // 递归处理子目录
} else if (path.extname(file) === '.mobi') {
const destDir = path.join(targetDir, path.basename(dir));
fs.mkdirSync(destDir, { recursive: true }); // 创建目标目录
fs.renameSync(dir, path.join(destDir, path.basename(dir))); // 移动文件夹
}
});
});
});
}
moveMobiFiles(rootDir);
```
这个脚本会从脚本所在的目录开始遍历,递归处理所有子目录,如果在某个目录中找到了后缀名为`.mobi`的文件,就将这个目录移动到脚本所在目录下的`123`目录中,以该目录的名称命名一个新的文件夹,并将原目录移动到这个新文件夹中。
阅读全文