2016-04-25 218 views
0

如何使用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!'); 
     }); 
    } 
}); 

但有可能使它更好?

+1

'grunt'副本任務中使用? –

回答

0

如果你有大量的文件和文件夾的複製,你極有可能會收到以下錯誤消息

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!'); 
     }); 
    } 
}); 
相關問題