我正在使用 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/