我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

实现代码一:


var fs  = require('fs')
var path = require('path')

var copyFile = function(class="lazy" data-srcPath, tarPath, cb) {
 var rs = fs.createReadStream(class="lazy" data-srcPath)
 rs.on('error', function(err) {
  if (err) {
   console.log('read error', class="lazy" data-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(class="lazy" data-srcDir, tarDir, cb) {
 fs.readdir(class="lazy" data-srcDir, function(err, files) {
  var count = 0
  var checkEnd = function() {
   ++count == files.length && cb && cb()
  }

  if (err) {
   checkEnd()
   return
  }

  files.forEach(function(file) {
   var class="lazy" data-srcPath = path.join(class="lazy" data-srcDir, file)
   var tarPath = path.join(tarDir, file)

   fs.stat(class="lazy" data-srcPath, function(err, stats) {
    if (stats.isDirectory()) {
     console.log('mkdir', tarPath)
     fs.mkdir(tarPath, function(err) {
      if (err) {
       console.log(err)
       return
      }

      copyFolder(class="lazy" data-srcPath, tarPath, checkEnd)
     })
    } else {
     copyFile(class="lazy" data-srcPath, tarPath, checkEnd)
    }
   })
  })

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

使用时


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

  return
 }

 //continue
})

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

实现代码一:var fs = require('fs') var path = require('path')var copyFile = function(srcPath, tarPath, cb) {var rs = fs.creat
2022-06-04

Python列出一个文件夹及其子目录的所有文件

python简介 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 G
2022-06-04

python3.6怎么递归输出文件夹下的所有文件和子文件

本篇内容主要讲解“python3.6怎么递归输出文件夹下的所有文件和子文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python3.6怎么递归输出文件夹下的所有文件和子文件”吧!#-*- c
2023-06-03

C++如何遍历某个文件夹下面的子文件夹及其所有文件

这篇文章主要介绍了C++如何遍历某个文件夹下面的子文件夹及其所有文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法一下面是输出当前目录下的所有文件夹以及文件的绝对路径(当
2023-06-20

Android递归方式删除某文件夹下的所有文件(.mp3文件等等)

1.由于需要删除文件,因此需要如下权限: 2.核心代码
2022-06-06

Java怎么使用线程池递归压缩文件夹下面的所有子文件

这篇文章主要讲解了“Java怎么使用线程池递归压缩文件夹下面的所有子文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么使用线程池递归压缩文件夹下面的所有子文件”吧!本文将介绍Ja
2023-06-17

Linux 中批量提取文件夹下所有目录及文件名称

1、当前目录下打开jfRfEICMD控制台窗口,执行如下bat命令:dir *.*/b>文件名.txt 2、如下图例操作步骤: 打开CMD窗口输入命令生成文件结果截图总结
2022-06-04

linux怎么遍历目录下所有的文件夹

在Linux中,可以使用以下命令来遍历目录下所有的文件夹:使用find命令:find /path/to/directory -type d将/path/to/directory替换为要遍历的目录的路径。上述命令将递归地列出指定目录下的所
2023-10-21

C/C++怎么获取路径下所有文件及其子目录的文件名

这篇文章主要介绍了C/C++怎么获取路径下所有文件及其子目录的文件名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C/C++怎么获取路径下所有文件及其子目录的文件名文章都会有所收获,下面我们一起来看看吧。一、功
2023-07-05

linux Shell获取某目录下所有文件夹的名称

查看目录下面的所有文件:#!/bin/bash cd /目标目录 for file in $(ls *) doecho $file done延伸的方法,查看目录下面的所有目录#!/bin/bash cd /export/bak/origin
2022-06-04

详解C/C++如何获取路径下所有文件及其子目录的文件名

这篇文章主要为大家详细介绍了在C/C++中如何获取路径下所有文件及其子目录的文件名,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-03-14

vbs如何列出该目录下所有文件和文件夹的类型,大小,和所有者

这篇文章主要为大家展示了“vbs如何列出该目录下所有文件和文件夹的类型,大小,和所有者”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbs如何列出该目录下所有文件和文件夹的类型,大小,和所有者”
2023-06-08

java 用递归获取一个目录下的所有文件路径的小例子

还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹
2022-11-15

使用Shell怎么遍历目录及其子目录中的所有文件

本篇文章给大家分享的是有关使用Shell怎么遍历目录及其子目录中的所有文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。新建一个shell文件$ vi traveDir.sh输
2023-06-09

使用Shell遍历目录及其子目录中的所有文件方法

新建一个shell文件$ vi traveDir.shunXPRPHcZz输入以下代码#! /bin/bashfunction read_dir(){for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
2022-06-04

linux Shell如何获取某目录下所有文件夹的名称

这篇文章主要为大家展示了“linux Shell如何获取某目录下所有文件夹的名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux Shell如何获取某目录下所有文件夹的名称”这篇文章吧。
2023-06-09

shell获取目录下所有文件夹的名称并输出的实例

获取指定目录/usr/下所有文件夹的名称并输出: shell代码:#!/bin/bash #方法一 dir=$(ls -l /usr/ |awk '/^d/ {print $pgUMgOQNF}') for i in $dir d
2022-06-04

shell 递归遍历目录下的所有文件并统一改名的方法

遇到一道题目,如何把某个目录下的每个文件统一在名字前加上”abc”,用shell实现 首先分析,一个目录下除了文件,还可能存在目录,这里可以看出需要有递归操作,如果是文件直接改名,目录则进入然后进行遍历 如何实现遍历?我们写一个函数:fun
2022-06-04

编程热搜

目录