javascript - nodejs递归读取目录,获取文件路径,然后使用路径将文件复制到另一个目录
问题描述
我使用recursive-readdir读取目录及其子目录,如下所示:
const fse = require('fs-extra')
const recursive = require('recursive-readdir');
const inputFolder = './input';
const files = await recursive(inputFolder)
然后我像这样过滤获取的文件:
const fileteredFiles = files.filter((f) => f.includes('.gif'));
我 console.log(filteredFiles) 这是输出:
[ 'input/background/black.gif',
'input/background/grey.gif',]
现在我想将 black.gif 和 gray.gif 复制到另一个目录,我试过这个:
fse.copyFileSync(fileteredFiles, 'outputDir')
我收到此错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "src" argument must be one of type string, Buffer, or URL. Received type object
at Object.copyFileSync (fs.js:1719:3)
所以请指出我获取filteredFiles然后复制到另一个目录的正确方法。
任何帮助将非常感激。
解决方案
你读过错误信息吗?
TypeError [ERR_INVALID_ARG_TYPE]: The "src" argument must be one of type string, Buffer, or URL. Received type object
at Object.copyFileSync (fs.js:1719:3)
您将字符串列表/数组传递给fse.fileCopySync()
,而不是单个字符串。尝试类似:
for (const fn of filterFiles) {
fse.copyFileSync( fn , 'outputdir' );
}
推荐阅读
- extjs - 当单元格的红旗被移除或已知保留时,ExtJs 6 checkcolumn 监听器
- python - Tensorflow Estimator 中的 TFHub 嵌入特征列
- ionic-framework - 如何解决:无法确定类 OverlayPortal 的模块
- python - 使用 2D 输入训练 Sci-kit Learn 神经网络
- knockout.js - 使用身份验证令牌从安全服务器加载 requirejs 模块
- apache - Apache CXF Swagger UI JSON 文件不显示任何内容
- string - 切片包含 Unicode 字符的字符串
- android - 使用 mvvm 实现启动画面时出现此错误
- android - JobScheduler Android Oreo 问题
- django - 在 django forms.py 中获取 URL pk