NodeJS – 以recursion方式复制和重命名现有目录中的所有内容

我有一个目录中的文件夹和文件。 我想将整个目录的所有内容复制到不同的位置,同时将所有文件重命名为更有意义的内容。 我想用nodejs来完成这一系列的操作。 除了一个一个地移动它并逐一重命名,什么是简单的方法呢?

谢谢。

– 感谢您的评论! 所以这里是我想到的一个示例目录:

-MyFridge - MyFood.txt - MyApple.txt - MyOrange.txt - ... - MyDrinks - MySoda - MyDietCoke.txt - MyMilk.txt - ... - MyDesserts - MyIce ... 

例如,我想用“汤姆”代替“我的”,我也想在所有的文本文件中将“我的”改名为汤姆。 我能够使用node-fs-extra将目录复制到不同的位置,但是我很难重命名文件名。

定义你自己的工具

 const fs = require('fs'); const path = require('path'); function renameFilesRecursive(dir, from, to) { fs.readdirSync(dir).forEach(it => { const itsPath = path.resolve(dir, it); const itsStat = fs.statSync(itsPath); if (itsStat.isDirectory()) { renameFilesRecursive(itsPath, from, to) } else { if (itsPath.search(from) > -1) { fs.renameSync(itsPath, itsPath.replace(from, to)) } } }) } 

用法

 const dir = path.resolve(__dirname, 'src/app'); renameFilesRecursive(dir, /^My/, 'Tom'); renameFilesRecursive(dir, /\.txt$/, '.class');