全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Node.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)
}

复制目录及其子目录

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
})

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


# Node.JS  # 循环  # 递归  # 复制文件夹  # 在Node.js中实现文件复制的方法和实例  # Nodejs 复制文件/文件夹的方法  # Nodejs如何复制文件  # Node.js复制文件的方法示例  # nodejs文件夹深层复制功能  # 纯异步nodejs文件夹(目录)复制功能  # node删除、复制文件或文件夹示例代码  # node.js文件的复制、创建文件夹等相关操作  # 到此  # 回调  # 为空  # createReadStream  # error  # rs  # tarPath  # cb  # read  # amp  # log  # err  # console  # srcPath  # js  # var  # brush  # pre  # class  # copyFile 


相关文章: 企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  网站app免费制作软件,能免费看各大网站视频的手机app?  临沂网站制作企业,临沂第三中学官方网站?  如何做网站制作流程,*游戏网站怎么搭建?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何快速搭建虚拟主机网站?新手必看指南  网站制作知乎推荐,想做自己的网站用什么工具比较好?  网站制作公司排行榜,抖音怎样做个人官方网站  做企业网站制作流程,企业网站制作基本流程有哪些?  制作网站公司那家好,网络公司是做什么的?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  如何在万网自助建站平台快速创建网站?  名字制作网站免费,所有小说网站的名字?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何选择CMS系统实现快速建站与SEO优化?  为什么Go需要go mod文件_Go go mod文件作用说明  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何选择适配移动端的WAP自助建站平台?  如何高效利用200m空间完成建站?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何构建满足综合性能需求的优质建站方案?  如何通过建站之星自助学习解决操作问题?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  Android自定义控件实现温度旋转按钮效果  北京制作网站的公司,北京铁路集团官方网站?  详解jQuery中基本的动画方法  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  韩国服务器如何优化跨境访问实现高效连接?  Python文件管理规范_工程实践说明【指导】  用v-html解决Vue.js渲染中html标签不被解析的问题  建站主机是什么?如何选择适合的建站主机?  如何通过万网虚拟主机快速搭建网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何在阿里云部署织梦网站?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  建站之星安装提示数据库无法连接如何解决?  青岛网站建设如何选择本地服务器?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  高端云建站费用究竟需要多少预算?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  如何在新浪SAE免费搭建个人博客?  音响网站制作视频教程,隆霸音响官方网站?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  深圳网站制作平台,深圳市做网站好的公司有哪些?  家庭建站与云服务器建站,如何选择更优?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。