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中的非阻塞方法介绍
Jun 05 NodeJs
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 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
第一个无线电台是由谁发明的
2021/03/01 无线电
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
javascript一点特殊用法
2008/05/28 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
详解Python中的条件判断语句
2015/05/14 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python字符串格式化输出方法分析
2016/04/13 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
企业申诉管理制度
2014/01/30 职场文书
团代会宣传工作方案
2014/05/08 职场文书
综合测评自我评价
2015/03/06 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
摩登时代观后感
2015/06/03 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL