568数据 568数据


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

网络编程 Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件 06-22

实现代码一:

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 使用递归实现遍历文件夹中所有文件
如标题所示,遍历文件夹下的所有文件,主要功能如下:传入一个路径,读取路径里面所有的文件遍历读取的文件,判断当前文件是文件还是文件夹当

nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
1、equal()equal(actual,expected[,message])相当于使用==运算符比较两个参数值actual和expected是否相等,如果相等不返回任何值,如果不相等则返回带有message属性

Node.js中Bootstrap-table的两种分页的实现方法
1、Bootstrap-table使用github:https://github.com/wenzhixin/bootstrap-table官方文档:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/bootstrap-table是一个基于bootstrap的表格


编辑:568数据

标签:文件,遍历,递归,文件夹,路径