繁体   English   中英

Node.js将文件从多个目录复制到一个目录

[英]Node.js copy files from several directories to one directory

如何使用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-fsgraceful-ncp代替fsncp

安装此模块

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!');
        });
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM