Node.js将文件从多个目录复制到一个目录
问题描述:
如何使用Node.js将文件从多个目录复制到一个目录。 假设一个目录中有多个目录。Node.js将文件从多个目录复制到一个目录
我有一个解决方案
var fs = require('fs');
var ncp = require('ncp').ncp;
ncp.limit = 16;
fs.readdir(__dirname, function(err, files) {
for (var i = 0; i < files.length; i++) {
ncp(files[i], 'C:/Users/User/Desktop/output', function(err) {
if (err) {
return console.error(err);
}
console.log('done!');
});
}
});
但有可能使它更好?
答
如果你有大量的文件和文件夹的复制,你极有可能会收到以下错误消息
Error: EMFILE, too many open files
为了解决这个问题,我建议使用模块graceful-fs
和graceful-ncp
代替fs
和ncp
安装该模块
npm install graceful-fs graceful-ncp
和代码
var fs = require('graceful-fs');
var ncp = require('graceful-ncp').ncp;
ncp.limit = 16;
fs.readdir(__dirname, function(err, files) {
for (var i = 0; i < files.length; i++) {
ncp(files[i], 'C:/path/to/output/folder', function(err) {
if (err) {
return console.error(err);
}
console.log('done!');
});
}
});
'grunt'副本任务中使用? –