百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> Node.js复制文件的教程
分享文章到:

Node.js复制文件的教程

发布时间:01/15 来源: 浏览: 关键词:
开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,利用node.js可以轻松解决这个问题。对Node.js复制文件感兴趣的同学继续往下看吧!

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

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

 
 代码如下
// js/app.js:指定确切的文件名。
// js/*.js:某个目录所有后缀名为js的文件。
// js/**/*.js:某个目录及其所有子目录中的所有后缀名为js的文件。
// !js/app.js:除了js/app.js以外的所有文件。
// *.+(js|css):匹配项目根目录下,所有后缀名为js或css的文件。
//流 stream  管道 pipe 管道
//如果想在读取流和写入流的时候做完全的控制,可以使用数据事件。但对于单纯的文件复制来说读取流和写入流可以通过管道来传输数据。
varfs = require("fs");
varpath = require("path");
/*
 * 复制目录中的所有文件包括子目录
 * @src param{ String } 需要复制的目录  例 images 或者 ./images/
 * @dst param{ String } 复制到指定的目录  例 images images/
 */
//获取当前目录绝对路径,这里resolve()不传入参数
varfilePath = path.resolve();
varcopy =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系统是”\“
        varurl = 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)throwerr;
           //是文件
          if(stats.isFile()){
            //创建读取流
            readable = fs.createReadStream(url);
            //创建写入流
            writable = fs.createWriteStream(dest,{ encoding:"utf8"});
            // 通过管道来传输流
            readable.pipe(writable);
          //如果是目录
          }elseif(stats.isDirectory()){
            exists( url, dest, copy );
          }
        });
      });
    });
  }else{
    console.log("给定的目录不存,读取不到文件");
    return;
  }
}
functionexists(url,dest,callback){
  fs.exists(dest,function(exists){
    if(exists){
      callback && callback(url,dest);
    }else{
      //第二个参数目录权限 ,默认0777(读写权限)
      fs.mkdir(dest,0777,function(err){
        if(err)throwerr;
        callback && callback(url,dest);
      });
    }
  });
}
exports.copy = copy;
//copy("./views/","./www/");
copy("./../jdcase/homeappliances/",filePath);
 
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有11人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板