Skip to content

Instantly share code, notes, and snippets.

@rraallvv
Created June 18, 2016 17:55
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rraallvv/7502a566cd358b347c0c81571c526770 to your computer and use it in GitHub Desktop.
Save rraallvv/7502a566cd358b347c0c81571c526770 to your computer and use it in GitHub Desktop.
[Node.js] copy dir recursively
var fs = require('fs');
var copy = function(srcDir, dstDir) {
var results = [];
var list = fs.readdirSync(srcDir);
var src, dst;
list.forEach(function(file) {
src = srcDir + '/' + file;
dst = dstDir + '/' + file;
//console.log(src);
var stat = fs.statSync(src);
if (stat && stat.isDirectory()) {
try {
console.log('creating dir: ' + dst);
fs.mkdirSync(dst);
} catch(e) {
console.log('directory already exists: ' + dst);
}
results = results.concat(copy(src, dst));
} else {
try {
console.log('copying file: ' + dst);
//fs.createReadStream(src).pipe(fs.createWriteStream(dst));
fs.writeFileSync(dst, fs.readFileSync(src));
} catch(e) {
console.log('could\'t copy file: ' + dst);
}
results.push(src);
}
});
return results;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment