javascript - 如何使用 fs.copyFile Node 复制多个文件?

标签 javascript node.js fs

我正在使用 fs.copyFile 将文件从一个位置复制到另一个位置。我这样做两次是为了复制两个文件。这是多余的,我想通过一次调用将两个文件复制到目的地来改进我的代码?我怎样才能做到这一点?

fs.copyFile('src/blah.txt', 'build/blah.txt', (err) => {
        if (err) throw err;
});
fs.copyFile('src/unk.txt', 'build/unk.txt', (err) => {
        if (err) throw err;
});

最佳答案

您可以简单地创建一个您自己的函数,它将 src 和 dest 路径以及一个文件名数组作为参数:

const util = require('util');
const fs = require('fs');
const path = require('path');
const copyFilePromise = util.promisify(fs.copyFile);

function copyFiles(srcDir, destDir, files) {
    return Promise.all(files.map(f => {
       return copyFilePromise(path.join(srcDir, f), path.join(destDir, f));
    }));
}

// usage
copyFiles('src', 'build', ['unk.txt', 'blah.txt']).then(() => {
   console.log("done");
}).catch(err => {
   console.log(err);
});

关于javascript - 如何使用 fs.copyFile Node 复制多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54818288/

相关文章:

javascript - 使用javascript输出图像但不下载

javascript - 什么是 JSCC.get ... init?

node.js - 如何在 node.js 的单个进程中同步对文件的访问?

javascript - 错误 : incorrect header check when running post

node.js - 如何在nodejs中作为异步等待获取文件大小?

Javascript 字符串/整数比较

javascript - 当发生特定事件时,如何更改 html 表格条目背景的背景颜色?

node.js - 在 Node js 中安装 aws-sdk 返回 npm 错误

node.js - npm审计在使用bash的Windows上不起作用

node.js - 可以从node.js中的子进程中独立读取每个标准输出刷新的字符串