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的模块写法入门(实例代码)
Mar 07 NodeJs
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
js实现右键菜单功能
2016/11/28 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
python两种遍历字典(dict)的方法比较
2014/05/29 Python
python批量图片处理简单示例
2019/08/06 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python通过socketserver处理多个链接
2020/03/18 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
Django如何实现防止XSS攻击
2020/10/13 Python
python 写一个文件分发小程序
2020/12/05 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
村委会换届选举方案
2014/05/03 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
Java使用HttpClient实现文件下载
2022/08/14 Java/Android