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实现PHP的print_r函数代码
Mar 14 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodejs mysql 实现分页的方法
Jun 06 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
在nodejs中创建child process的方法
Jan 26 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
表单复选框向PHP传输数据的代码
2007/11/13 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
php实现的mongodb操作类
2015/05/28 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
python实现简单温度转换的方法
2015/03/13 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Django Rest framework频率原理与限制
2019/07/26 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
容易被忽略的Python内置类型
2020/09/03 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
应用数学自荐书范文
2013/11/24 职场文书
广告业务员岗位职责
2014/02/06 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
MySQL 原理与优化之Update 优化
2022/08/14 MySQL