Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
程序员文章站
2022-05-14 18:49:09
实现代码一:
var fs = require('fs')
var path = require('path')
var copyfile = func...
实现代码一:
var fs = require('fs') var path = require('path') var copyfile = function(srcpath, tarpath, cb) { var rs = fs.createreadstream(srcpath) rs.on('error', function(err) { if (err) { console.log('read error', srcpath) } cb && cb(err) }) var ws = fs.createwritestream(tarpath) ws.on('error', function(err) { if (err) { console.log('write error', tarpath) } cb && cb(err) }) ws.on('close', function(ex) { cb && cb(ex) }) rs.pipe(ws) }
复制目录及其子目录
var copyfolder = function(srcdir, tardir, cb) { fs.readdir(srcdir, function(err, files) { var count = 0 var checkend = function() { ++count == files.length && cb && cb() } if (err) { checkend() return } files.foreach(function(file) { var srcpath = path.join(srcdir, file) var tarpath = path.join(tardir, file) fs.stat(srcpath, function(err, stats) { if (stats.isdirectory()) { console.log('mkdir', tarpath) fs.mkdir(tarpath, function(err) { if (err) { console.log(err) return } copyfolder(srcpath, tarpath, checkend) }) } else { copyfile(srcpath, tarpath, checkend) } }) }) //为空时直接回调 files.length === 0 && cb && cb() }) }
使用时
copyfolder('...', '....', function(err) { if (err) { return } //continue })
文章到此结束,希望有帮助的朋友多多支持。