Node.js递归复制多文件夹下特定扩展名(如.pes)文件至目标文件夹
问题描述
我有一个包含约112000个项目的文件夹,里面有多层子文件夹,需要复制子文件夹中特定扩展名(如.pes)的文件。我已经能递归获取目标文件的路径数组,但不知道如何将这些文件复制到另一文件夹,寻求帮助。
解决方案
我已经解决了这个问题,以下是实现方案:
copy-files-recursive
这个程序可以帮助从嵌套文件夹结构(比如PICS文件夹)中复制指定文件。
技术栈
基于Node.js的JavaScript编写,用到以下模块:
- fs-extra
- path
- recursive-readdir
工作原理
- 遍历目标文件夹及所有子文件夹获取文件路径;
- 使用recursive-readdir模块实现递归读取目录;
- 通过
filter()方法筛选出.pes扩展名的文件; - 使用
fs.copyFileSync()方法将筛选后的文件复制到目标文件夹(比如PES文件夹)。
代码示例
const recursive = require("recursive-readdir"); const fs = require('fs-extra') const path = require('path') recursive("./PICS", function (err, files) { // `files` 是文件路径组成的数组 const filteredFiles = files.filter((file) => file.includes('.pes')) for (const fn of filteredFiles) { fs.copyFileSync(fn, path.join('./PES', path.basename(fn))); } });
内容的提问来源于stack exchange,提问作者Duane Muller
相关产品推荐
相关产品推荐

