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 覆盖和重载 函数
Sep 25 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
Jun 11 Javascript
jquery实现键盘左右翻页特效
Apr 30 Javascript
javascript制作的滑动图片菜单
May 15 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 Javascript
Vue.js 中的实用工具方法【推荐】
Jul 04 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
借助云开发实现小程序短信验证码的发送
Jan 06 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
PHP+MYSQL的文章管理系统(一)
2006/10/09 PHP
php强制下载类型的实现代码
2011/04/21 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
使用Python生成随机密码的示例分享
2016/02/18 Python
Python字符串处理实现单词反转
2017/06/14 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
利用python进行文件操作
2020/12/04 Python
python字典与json转换的方法总结
2020/12/28 Python
银行领导证婚词
2014/01/11 职场文书
《春晓》教学反思
2014/04/20 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
工资证明范本
2015/06/12 职场文书
升学宴学生致辞
2015/09/29 职场文书
创业计划书之物流运送
2019/09/17 职场文书
mysql 索引合并的使用
2021/08/30 MySQL