Node.js復(fù)制文件的方法示例
更新時間:2016年12月29日 11:35:26 作者:小小平凡世界
這篇文章主要介紹了Node.js復(fù)制文件的方法,涉及nodejs針對文件流的創(chuàng)建、讀取、寫入等操作技巧,需要的朋友可以參考下
本文實例講述了Node.js復(fù)制文件的方法。分享給大家供大家參考,具體如下:
本人開發(fā)過程中,經(jīng)常遇到,要去拷貝模板到當前文件夾,經(jīng)常要去托文件,為了省事,解決這個問題,寫了一個node復(fù)制文件。
// js/app.js:指定確切的文件名。
// js/*.js:某個目錄所有后綴名為js的文件。
// js/**/*.js:某個目錄及其所有子目錄中的所有后綴名為js的文件。
// !js/app.js:除了js/app.js以外的所有文件。
// *.+(js|css):匹配項目根目錄下,所有后綴名為js或css的文件。
//流 stream 管道 pipe 管道
//如果想在讀取流和寫入流的時候做完全的控制,可以使用數(shù)據(jù)事件。但對于單純的文件復(fù)制來說讀取流和寫入流可以通過管道來傳輸數(shù)據(jù)。
var fs = require("fs");
var path = require("path");
/*
* 復(fù)制目錄中的所有文件包括子目錄
* @src param{ String } 需要復(fù)制的目錄 例 images 或者 ./images/
* @dst param{ String } 復(fù)制到指定的目錄 例 images images/
*/
//獲取當前目錄絕對路徑,這里resolve()不傳入?yún)?shù)
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系統(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)建寫入流
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{
//第二個參數(shù)目錄權(quán)限 ,默認0777(讀寫權(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);
希望本文所述對大家nodejs程序設(shè)計有所幫助。
相關(guān)文章
nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實例(帶跨域)
這篇文章主要介紹了nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實例(帶跨域) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
nodejs使用express獲取get和post傳值及session驗證的方法
這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗證的方法,結(jié)合實例形式分析了nodejs使用express實現(xiàn)獲取get和post傳值及session驗證功能的具體操作步驟與注意事項,需要的朋友可以參考下2017-11-11
npm?install安裝失敗常見問題的解決辦法小結(jié)
有時候前端安裝npm install 安裝包總是安裝不上,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝失敗常見問題的解決辦法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05
nodejs實現(xiàn)OAuth2.0授權(quán)服務(wù)認證
本篇文章主要介紹了nodejs實現(xiàn)OAuth2.0授權(quán)服務(wù)認證,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
node?NPM庫增強版globby?Promise使用學(xué)習
這篇文章主要為大家介紹了node?NPM庫增強版globby?Promise使用學(xué)習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

