当前位置:首页 > 日记 > 正文

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

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

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

相关文章

js实现简单的网页换肤效果

js实现简单的网页换肤效果

网页,换肤,效果,简单,电脑软件,中心思想:网页换肤的原理就是通过调用不同的样式表文件来实现不同的皮肤切换,并且需要将换好的皮肤计入Cookie中,这样用户已下次访问时,就可以显示用户自定义皮肤了步骤:1.在设计HTML代码时,用了一些小技巧,就是将皮…

解决nodejs中使用http请求返回值为

解决nodejs中使用http请求返回值为

请求,乱码,值为,电脑软件,nodejs,今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法。果不其然报错了:SyntaxError: Unexpected token in JSON at position 0没办法,只好换一种方法,将接受到的Buffer…

JS中跳出循环的示例代码

JS中跳出循环的示例代码

示例代码,跳出循环,电脑软件,JS,1、for循环中我们使用continue;终止本次循环计入下一个循环,使用break终止整个循环。2、而在jquery中 $.each使用return true 终止本次循环计入下一个循环,return false终止整个循环。 函数返回值跟此处无关例…

qq个性签名火星文情侣

qq个性签名火星文情侣

文情,火星,个性签名,大全,电脑软件,  一句个性签名火星文情侣:向全世界宣布我是最幸福的,因为有你在。下面小编给大家分享了关于qq个性签名火星文情侣,希望你喜欢。qq个性签名火星文情侣大全1) 向全世界宣布我是最幸福的,因为有你在2) 向全世…

详解nodejs微信公众号开发——1.接

详解nodejs微信公众号开发——1.接

微信公众号,详解,电脑软件,nodejs,接入微信公众号是开发的第一步,万事开头难,走好第一步,后面的路就更宽广。1.公众平台测试帐号的使用登录微信公众平台,由于很多开发人员并没有认证的的微信公众号,所以比较折中的方式是使用公众平台测试帐号来…

基于AGS JS开发自定义贴图图层

基于AGS JS开发自定义贴图图层

贴图,图层,自定义,电脑软件,AGS,1.前言假设一个景区有多张图片需要在地图上展示,并且随着地图的缩放而缩放(不是单纯的以气泡来展示)。如果利用传统方案,则是我们首先将图片纠正赋予地理信息,然后根据地图级别进行切图,最后以瓦片的形式叠加至地…

怎样设置word默认模板设置word默认

怎样设置word默认模板设置word默认

模板,默认,设置,方法,电脑软件,  在工作中经常使用到word,在公司中有相应的格式规范,每次编辑文件时都需要调整一下格式,感觉会有点麻烦;如果调整一下word的默认模板的格式,以后编辑文件时调整的格式就相对少了很多,省时又省力。下面由小编为…

excel图表添加标题的方法步骤图

excel图表添加标题的方法步骤图

图表,方法,步骤,教程,标题,  Excel是三大办公软件之一的一个软件,他经常用于数据的整理、分析、以及对比等。而有很多时候需要用到Excel里的图表的功能并且为其添加标题。下面是小编为大家带来的excel图表添加标题的方法,相信对你会有帮助…

Javascript面试经典套路reduce函数

Javascript面试经典套路reduce函数

函数,套路,经典,电脑软件,Javascript,今天在偶然间查看到了一段代码,代码使用了很短的篇幅完成了字符串统计相同字符次数这个经典面试题,其中用到了reduce这个方法,网上查了查,没有查到什么有价值的东西,导致浪费了我一些时间才看懂,现将我的思路…

word怎么删除单元格word删除单元格

word怎么删除单元格word删除单元格

删除,方法,单元格,电脑软件,word,  人们在使用Word2010制作表格时,有时会遇到需要删除某个单元格的情况。那么下面就由小编给大家分享下word删除单元格的技巧,希望能帮助到您。word删除单元格方法一步骤一:选择好你要删除的表格word删除单元…

简单实现JS上传预览功能

简单实现JS上传预览功能

上传,简单实现,功能,电脑软件,JS,js实现上传图片预览功能思路是获取上传图片本地路径,再加载到页面中实现上传预览 HTML代码<div class="upload"> <input type="button" class="btn" onclick="browerfile.click()" value="上传…

JavaScript实现弹出广告功能

JavaScript实现弹出广告功能

弹出,功能,广告,电脑软件,JavaScript,废话不多说了,直接给大家贴代码了,具体代码如下所示:<span style="white-space:pre"> </span>var i=0;//记录次数 var timer;//定时器id //设置弹出广告 onload=function(){ //间隔四秒展示一次…