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 相关文章推荐
使用pjax实现无刷新更改页面url
Feb 05 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
详解jQuery插件开发方式
Nov 22 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 Javascript
JS 实现分页打印功能
May 16 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
May 01 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP中的正规表达式(二)
2006/10/09 PHP
PHP新手上路(六)
2006/10/09 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
python实现网页自动签到功能
2019/01/21 Python
python开启debug模式的方法
2019/06/27 Python
django如何自己创建一个中间件
2019/07/24 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
详细分析Python collections工具库
2020/07/16 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
珍珠奶茶店创业计划书
2014/01/11 职场文书
软件项目开发计划书
2014/05/01 职场文书
求职自我评价范文100字
2014/09/23 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
《司马光》教学反思
2016/02/22 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS