nodejs 递归拷贝、读取目录下所有文件和目录


Posted in NodeJs onJuly 18, 2019

先给大家介绍下nodejs 递归拷贝目录下所有文件和目录,具体代码如下所示:

var fs=require('fs');
var copy=function(src,dst){
  let paths = fs.readdirSync(src); //同步读取当前目录
  paths.forEach(function(path){
    var _src=src+'/'+path;
    var _dst=dst+'/'+path;
    fs.stat(_src,function(err,stats){ //stats 该对象 包含文件属性
      if(err)throw err;
      if(stats.isFile()){ //如果是个文件则拷贝
        let readable=fs.createReadStream(_src);//创建读取流
        let writable=fs.createWriteStream(_dst);//创建写入流
        readable.pipe(writable);
      }else if(stats.isDirectory()){ //是目录则 递归
        checkDirectory(_src,_dst,copy);
      }
    });
  });
}
var checkDirectory=function(src,dst,callback){
  fs.access(dst, fs.constants.F_OK, (err) => {
    if(err){
      fs.mkdirSync(dst);
      callback(src,dst);
    }else{
      callback(src,dst);
    }
   });
};
const  SOURCES_DIRECTORY = 'd:commonPrefab'; //源目录
checkDirectory(SOURCES_DIRECTORY,__dirname,copy);

ps:下面看下Nodejs递归读取目录下的所有文件

递归读取当前目录下的所有文件。

var fs = require('fs');
var path = require('path');
var exec = require('child_process').exec;
function readFileList(dir, filesList = []) {
  const files = fs.readdirSync(dir);
  console.log(files);
  files.forEach((item, index) => {
    var fullPath = path.join(dir, item);
    const stat = fs.statSync(fullPath);
    if (stat.isDirectory()) {   
      readFileList(path.join(dir, item), filesList); //递归读取文件
    } else {        
      filesList.push(fullPath);           
    }    
  });
  return filesList;
}
var filesList = [];
readFileList(__dirname,filesList);
console.log(filesList);

总结

以上所述是小编给大家介绍的nodejs 递归拷贝、读取目录下所有文件和目录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
我的NodeJs学习小结(一)
Jul 06 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 #NodeJs
nodejs中各种加密算法的实现详解
Jul 11 #NodeJs
监控Nodejs的性能实例代码
Jul 02 #NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 #NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 #NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 #NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 #NodeJs
You might like
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
django 单表操作实例详解
2019/07/30 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
小学教师节活动方案
2014/01/31 职场文书
安全教育感言
2014/03/04 职场文书
个人授权委托书范本
2014/04/03 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
民主评议党员工作总结
2014/10/20 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
小鞋子观后感
2015/06/05 职场文书
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
Python中requests库的用法详解
2022/06/05 Python