亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js復(fù)制文件的方法示例

 更新時(shí)間:2016年12月29日 11:35:26   作者:小小平凡世界  
這篇文章主要介紹了Node.js復(fù)制文件的方法,涉及nodejs針對(duì)文件流的創(chuàng)建、讀取、寫(xiě)入等操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Node.js復(fù)制文件的方法。分享給大家供大家參考,具體如下:

本人開(kāi)發(fā)過(guò)程中,經(jīng)常遇到,要去拷貝模板到當(dāng)前文件夾,經(jīng)常要去托文件,為了省事,解決這個(gè)問(wèn)題,寫(xiě)了一個(gè)node復(fù)制文件。

// js/app.js:指定確切的文件名。
// js/*.js:某個(gè)目錄所有后綴名為js的文件。
// js/**/*.js:某個(gè)目錄及其所有子目錄中的所有后綴名為js的文件。
// !js/app.js:除了js/app.js以外的所有文件。
// *.+(js|css):匹配項(xiàng)目根目錄下,所有后綴名為js或css的文件。
//流 stream  管道 pipe 管道
//如果想在讀取流和寫(xiě)入流的時(shí)候做完全的控制,可以使用數(shù)據(jù)事件。但對(duì)于單純的文件復(fù)制來(lái)說(shuō)讀取流和寫(xiě)入流可以通過(guò)管道來(lái)傳輸數(shù)據(jù)。
var fs = require("fs");
var path = require("path");
/*
 * 復(fù)制目錄中的所有文件包括子目錄
 * @src param{ String } 需要復(fù)制的目錄  例 images 或者 ./images/
 * @dst param{ String } 復(fù)制到指定的目錄  例 images images/
 */
//獲取當(dāng)前目錄絕對(duì)路徑,這里resolve()不傳入?yún)?shù)
var filePath = path.resolve();
var copy = function(src,dst){
  //判斷文件需要時(shí)間,則必須同步
  if(fs.existsSync(src)){
    fs.readdir(src,function(err,files){
      if(err){console.log(err);return;}
      files.forEach(function(filename){
        //url+"/"+filename不能用/直接連接,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“
        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()){
            //創(chuàng)建讀取流
            readable = fs.createReadStream(url);
            //創(chuàng)建寫(xiě)入流 
            writable = fs.createWriteStream(dest,{ encoding: "utf8" });
            // 通過(guò)管道來(lái)傳輸流
            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{
      //第二個(gè)參數(shù)目錄權(quán)限 ,默認(rèn)0777(讀寫(xiě)權(quán)限)
      fs.mkdir(dest,0777,function(err){
        if (err) throw err;
        callback && callback(url,dest);
      });
    }
  });
}
exports.copy = copy;
//copy("./views/","./www/");
copy("./../jdcase/homeappliances/",filePath);

希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論