NodeJS遍曆檔案生產檔案清單
這裡分享一下,通過node,知道檔案路徑,並配置遠程路徑,直接copy,發布。 建立filelist.js 裡面都有注釋,我就不哆嗦了.
var fs = require("fs");//path模組,可以生產相對和絕對路徑var path = require("path"); //配置遠程路徑var remotePath = "/resource/fd/promote/201507/qixi/";//擷取目前的目錄絕對路徑,這裡resolve()不傳入參數var filePath = path.resolve();//讀取檔案儲存體數組var fileArr = [];//讀取檔案目錄fs.readdir(filePath,function(err,files){ if(err){ console.log(err); return; } var count = files.length; //console.log(files); var results = {}; files.forEach(function(filename){ //filePath+"/"+filename不能用/直接連接,Unix系統是”/“,Windows系統是”\“ fs.stat(path.join(filePath,filename),function(err, stats){ if (err) throw err; //檔案 if(stats.isFile()){ if(getdir(filename) == 'html'){ var newUrl=remotePath+filename; fileArr.push(newUrl); writeFile(fileArr); } // (getdir(filename) == 'html')&&(fileArr.push(filename);writeFile(newUrl)); // console.log("%s is file", filename); }else if(stats.isDirectory()){ // console.log("%s is a directory檔案目錄", filename); if(filename == 'css' || filename == 'images'){ //var readurl = filePath+'/'+filename; //filePath+"/"+filename不能用/直接連接,Unix系統是”/“,Windows系統是”\“ // console.log(path.join(filePath,filename)); var name = filename; readFile(path.join(filePath,filename),name); } } }); });});//擷取尾碼名function getdir(url){ var arr = url.split('.'); var len = arr.length; return arr[len-1];}//擷取檔案數組function readFile(readurl,name){ console.log(name); var name = name; fs.readdir(readurl,function(err,files){ if(err){console.log(err);return;} files.forEach(function(filename){ // console.log(path.join(readurl,filename)); fs.stat(path.join(readurl,filename),function(err, stats){ if (err) throw err; //是檔案 if(stats.isFile()){ var newUrl=remotePath+name+'/'+filename; fileArr.push(newUrl); writeFile(fileArr) //是子目錄 }else if(stats.isDirectory()){ var dirName = filename; readFile(path.join(readurl,filename),name+'/'+dirName); //利用arguments.callee(path.join())這種形式利用自身函數,會報錯 //arguments.callee(path.join(readurl,filename),name+'/'+dirName); } }); }); });}// 寫入到filelisttxt檔案function writeFile(data){ var data = data.join("\n"); fs.writeFile(filePath+"/"+"filelist.txt",data+'\n',function(err){ if(err) throw err; console.log("寫入成功"); });}