Node.js复制文件的方法示例


Posted in Javascript onDecember 29, 2016

本文实例讲述了Node.js复制文件的方法。分享给大家供大家参考,具体如下:

本人开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,为了省事,解决这个问题,写了一个node复制文件。

// js/app.js:指定确切的文件名。
// js/*.js:某个目录所有后缀名为js的文件。
// js/**/*.js:某个目录及其所有子目录中的所有后缀名为js的文件。
// !js/app.js:除了js/app.js以外的所有文件。
// *.+(js|css):匹配项目根目录下,所有后缀名为js或css的文件。
//流 stream  管道 pipe 管道
//如果想在读取流和写入流的时候做完全的控制,可以使用数据事件。但对于单纯的文件复制来说读取流和写入流可以通过管道来传输数据。
var fs = require("fs");
var path = require("path");
/*
 * 复制目录中的所有文件包括子目录
 * @src param{ String } 需要复制的目录  例 images 或者 ./images/
 * @dst param{ String } 复制到指定的目录  例 images images/
 */
//获取当前目录绝对路径,这里resolve()不传入参数
var filePath = path.resolve();
var copy = function(src,dst){
  //判断文件需要时间,则必须同步
  if(fs.existsSync(src)){
    fs.readdir(src,function(err,files){
      if(err){console.log(err);return;}
      files.forEach(function(filename){
        //url+"/"+filename不能用/直接连接,Unix系统是”/“,Windows系统是”\“
        var url = path.join(src,filename),
          dest = path.join(dst,filename);
          console.log(url);
          console.log(dest);
        fs.stat(path.join(src,filename),function(err, stats){
          if (err) throw err;
           //是文件
          if(stats.isFile()){
            //创建读取流
            readable = fs.createReadStream(url);
            //创建写入流 
            writable = fs.createWriteStream(dest,{ encoding: "utf8" });
            // 通过管道来传输流
            readable.pipe(writable);
          //如果是目录
          }else if(stats.isDirectory()){
            exists( url, dest, copy );
          }
        });
      });
    });
  }else{
    console.log("给定的目录不存,读取不到文件");
    return;
  }
}
function exists(url,dest,callback){
  fs.exists(dest,function(exists){
    if(exists){
      callback && callback(url,dest);
    }else{
      //第二个参数目录权限 ,默认0777(读写权限)
      fs.mkdir(dest,0777,function(err){
        if (err) throw err;
        callback && callback(url,dest);
      });
    }
  });
}
exports.copy = copy;
//copy("./views/","./www/");
copy("./../jdcase/homeappliances/",filePath);

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
js 动态选中下拉框
Nov 26 Javascript
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
JS 操作符整理[推荐收藏]
Nov 15 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
谷歌浏览器调试JavaScript小技巧
Dec 29 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
JS不完全国际化&本地化手册 之 理论篇
Sep 27 Javascript
微信小程序Getuserinfo解决方案图解
Aug 24 Javascript
详解基于vue-cli3快速发布一个fullpage组件
Mar 08 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
js 图片懒加载的实现
Oct 21 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 #Javascript
JS作用域深度解析
Dec 29 #Javascript
javascript中的深复制详解及实例分析
Dec 29 #Javascript
canvas学习之API整理笔记(一)
Dec 29 #Javascript
Javascript Function.prototype.bind详细分析
Dec 29 #Javascript
jQuery自定义插件详解及实例代码
Dec 29 #Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 #Javascript
You might like
yii的CURD操作实例详解
2014/12/04 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
利用Psyco提升Python运行速度
2014/12/24 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
新西兰优惠网站:Treat Me
2019/07/04 全球购物
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
一篇.NET面试题
2014/09/29 面试题
实习医生自我评价
2013/09/22 职场文书
证婚人经典证婚词
2014/01/09 职场文书
工程建设实施方案
2014/03/14 职场文书
员工入职担保书范文
2014/04/01 职场文书
小学生演讲稿大全
2014/04/25 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
学校会议通知范文
2015/04/15 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
标准发言稿结尾
2019/07/18 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书