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 相关文章推荐
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
JavaScript继承方式实例
Oct 29 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
Mar 20 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
Jul 11 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
vue子父组件通信的实现代码
Jul 09 Javascript
d3绘制基本的柱形图的实现代码
Dec 12 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
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
JavaScript多线程详解
2015/08/12 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
python转换摩斯密码示例
2014/02/16 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
Python random模块的使用示例
2020/10/10 Python
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
数控技术与应用毕业生自荐信
2013/09/24 职场文书
英语专业应届生求职信范文
2013/11/15 职场文书
大门门卫岗位职责
2013/11/30 职场文书
便利店促销方案
2014/02/20 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
辅导员学期工作总结
2015/08/14 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书