最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.JS 循環(huán)遞歸復(fù)制文件夾目錄及其子文件夾下的所有文件

 更新時(shí)間:2017年09月18日 22:17:02   投稿:mdxy-dxy  
在Node.js中,要實(shí)現(xiàn)目錄文件夾的循環(huán)遞歸復(fù)制也非常簡(jiǎn)單,使用fs模塊即可,僅需幾行,而且性能也不錯(cuò),我們先來(lái)實(shí)現(xiàn)文件的復(fù)制,需要的朋友可以參考下

實(shí)現(xiàn)代碼一:

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

復(fù)制目錄及其子目錄

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

  //為空時(shí)直接回調(diào)
  files.length === 0 && cb && cb()
 })
}

使用時(shí)

copyFolder('...', '....', function(err) {
 if (err) {

  return
 }

 //continue
})

文章到此結(jié)束,希望有幫助的朋友多多支持腳本之家。

相關(guān)文章

  • nodejs+express+multer搭建文件上傳文件預(yù)覽功能

    nodejs+express+multer搭建文件上傳文件預(yù)覽功能

    Express 是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具,今天給大家分享nodejs+express+multer搭建文件上傳文件預(yù)覽功能,感興趣的朋友一起看看吧
    2025-03-03
  • NodeJS使用文件流解決大文件處理的內(nèi)存與時(shí)間效率問(wèn)題

    NodeJS使用文件流解決大文件處理的內(nèi)存與時(shí)間效率問(wèn)題

    在 NodeJS 中,文件操作是常見(jiàn)的任務(wù)之一,然而,當(dāng)處理大文件時(shí),直接將整個(gè)文件加載到內(nèi)存中可能會(huì)導(dǎo)致內(nèi)存溢出或性能瓶頸,為了解決這一問(wèn)題,NodeJS 提供了文件流(Stream)機(jī)制,本文將詳細(xì)介紹文件流的優(yōu)點(diǎn)、使用方法、應(yīng)用場(chǎng)景,并探討背壓(Backpressure)的概念
    2025-01-01
  • 解決node-webkit 不支持html5播放mp4視頻的方法

    解決node-webkit 不支持html5播放mp4視頻的方法

    本文給大家分享的是解決node-webkit 不支持html5播放mp4視頻的方法,其原因大概是因?yàn)閚ode-webkit沒(méi)有購(gòu)買(mǎi)mp4格式的專(zhuān)利授權(quán),恩,我們來(lái)想個(gè)辦法來(lái)解決這個(gè)事情吧。
    2015-03-03
  • node.js中的buffer.toJSON方法使用說(shuō)明

    node.js中的buffer.toJSON方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.toJSON方法使用說(shuō)明,本文介紹了buffer.toJSON的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 最新評(píng)論

    枣庄市| 彩票| 鄂伦春自治旗| 廊坊市| 林芝县| 巍山| 民乐县| 泸定县| 白玉县| 马鞍山市| 鄂托克旗| 巴楚县| 瑞昌市| 从江县| 方山县| 庐江县| 陆河县| 江北区| 叶城县| 新民市| 阜平县| 历史| 措美县| 湾仔区| 安泽县| 台南县| 碌曲县| 昌吉市| 壤塘县| 东阿县| 涿鹿县| 宁强县| 五河县| 珲春市| 西安市| 同心县| 余江县| 梅州市| 宁陕县| 道真| 盐山县|