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 17 NodeJs
nodejs批量修改文件编码格式
Jan 22 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 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中的Memcache详解
2014/04/05 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php头像上传预览实例代码
2017/05/02 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
js 上传图片预览问题
2010/12/06 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
判断网页编码的方法python版
2016/08/12 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
妇联主席先进事迹
2014/05/18 职场文书
服装设计师求职信
2014/06/04 职场文书
建筑工地大门标语
2014/06/18 职场文书
课外访万家心得体会
2014/09/03 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
法律讲堂观后感
2015/06/11 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL