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 相关文章推荐
基于jquery的web页面日期格式化插件
Nov 15 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
js如何实现元素曝光上报
Aug 07 Javascript
JavaScript文档对象模型DOM
Nov 20 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中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
python 测试实现方法
2008/12/24 Python
django缓存配置的几种方法详解
2018/07/16 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
24式加速你的Python(小结)
2019/06/13 Python
python aiohttp的使用详解
2019/06/20 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
Python list运算操作代码实例解析
2020/01/20 Python
python 实现图片批量压缩的示例
2020/12/18 Python
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
一套软件测试笔试题
2014/07/25 面试题
学院书画协会部门岗位职责
2013/12/01 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
开学典礼主持词
2014/03/19 职场文书
大班开学家长寄语
2014/04/04 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
排查MySQL生产环境索引没有效果
2022/04/11 MySQL