写一个nodejs脚本文件,遍历js文件所在的目录及子目录,如果文件夹中有一个后缀为mobi的文件,一个后缀为azw3的文件,就将这个文件夹移动到脚本文件所在的目录
时间: 2024-02-26 22:58:14 浏览: 163
好的,以下是一个可以实现你要求的Node.js脚本文件的示例代码:
```javascript
const fs = require('fs');
const path = require('path');
const scriptDir = __dirname;
const hasMobi = {};
const hasAzw3 = {};
function traverseDirectory(currentDir) {
fs.readdirSync(currentDir, { withFileTypes: true }).forEach((entry) => {
const entryPath = path.join(currentDir, entry.name);
if (entry.isDirectory()) {
traverseDirectory(entryPath);
if (hasMobi[entryPath] && hasAzw3[entryPath]) {
const destPath = path.join(scriptDir, path.basename(entryPath));
fs.renameSync(entryPath, destPath);
console.log(`Moved ${entryPath} to ${destPath}`);
}
} else if (entry.isFile()) {
const ext = path.extname(entry.name);
if (ext === '.mobi') {
hasMobi[currentDir] = true;
} else if (ext === '.azw3') {
hasAzw3[currentDir] = true;
}
}
});
}
traverseDirectory(scriptDir);
```
这个Node.js脚本文件会首先获取它所在目录的路径,然后遍历该目录及其子目录中的所有文件和文件夹。对于每个文件夹,它会检查其中是否有一个后缀为mobi的文件和一个后缀为azw3的文件。如果有,它就会将这个文件夹移动到脚本文件所在的目录。
你可以将这个代码保存为一个名为"move_folders.js"的文件,然后将它放在你想要执行操作的根目录中。在命令行中切换到该目录,然后运行`node move_folders.js`即可。
阅读全文