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服务器(10):处理POST请求
Dec 18 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 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检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
Vue中的异步组件函数实现代码
2018/07/20 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python sorted对list和dict排序
2020/06/09 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
大学生个人简历自我评价
2013/11/16 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
趣味游戏活动方案
2014/02/07 职场文书
鲜花方阵解说词
2014/02/13 职场文书
中文教师求职信
2014/02/22 职场文书
空气的环保标语
2014/06/12 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
讲座通知范文
2015/04/23 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python