微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件

实现代码一:

rush:js;"> 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)
}

复制目录及其子目录

rush:js;"> 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,stats) {
if (stats.isDirectory()) {
console.log('mkdir',tarPath)
fs.mkdir(tarPath,function(err) {
if (err) {
console.log(err)
return
}

  <a href="https://www.jb51.cc/tag/cop/" target="_blank" class="keywords">cop</a>yFolder(srcPath,checkEnd)
 })
} else {
 <a href="https://www.jb51.cc/tag/cop/" target="_blank" class="keywords">cop</a>yFile(srcPath,checkEnd)
}

})
})

//为空时直接回调
files.length === 0 && cb && cb()
})
}

使用时

rush:js;"> copyFolder('...','....',function(err) { if (err) {

return
}

//continue
})

文章到此结束,希望有帮助的朋友多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐