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中实现路由功能
Dec 29 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
详解Nodejs基于mongoose模块的增删改查的操作
Dec 21 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
May 15 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 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实现WEB动态网页静态
2006/10/09 PHP
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
详解vue 命名视图
2019/08/14 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
python二分法实现实例
2013/11/21 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
python实现图片素描效果
2020/09/26 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
乡镇庆八一活动方案
2014/02/02 职场文书
心理咨询承诺书
2014/05/20 职场文书
售房协议书
2014/08/19 职场文书
助学感谢信范文
2015/01/21 职场文书
个人自荐书范文
2015/03/09 职场文书
清明节寄语2015
2015/03/23 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers