国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

NodeJS遍歷文件生產(chǎn)文件列表功能示例

2019-11-19 17:48:53
字體:
供稿:網(wǎng)友

本文實(shí)例講述了NodeJS遍歷文件生產(chǎn)文件列表功能。分享給大家供大家參考,具體如下:

功能需求:在工作中我們可能經(jīng)常需要知道項(xiàng)目中靜態(tài)文件列表發(fā)布,一個(gè)一個(gè)去檢索寫,那就太苦逼了。

要想知道里面的文件列表是不是很蛋疼,可能我們也會(huì)有dos tree去獲取。

這里分享一下,通過node,知道文件路徑,并配置遠(yuǎn)程路徑,直接copy,發(fā)布。

新建filelist.js 里面都有注釋,我就不哆嗦了.

var fs = require("fs");//path模塊,可以生產(chǎn)相對(duì)和絕對(duì)路徑var path = require("path");//配置遠(yuǎn)程路徑var remotePath = "/resource/fd/promote/201507/qixi/";//獲取當(dāng)前目錄絕對(duì)路徑,這里resolve()不傳入?yún)?shù)var filePath = path.resolve();//讀取文件存儲(chǔ)數(shù)組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系統(tǒng)是”/“,Windows系統(tǒng)是”/“    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);         //返回指定文件名的擴(kuò)展名稱          //console.log(path.extname("pp/index.html"));         if(filename == 'css' || filename == 'images'){//var readurl = filePath+'/'+filename;             //filePath+"/"+filename不能用/直接連接,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”/“           //  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];}//獲取文件數(shù)組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())這種形式利用自身函數(shù),會(huì)報(bào)錯(cuò)          //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("寫入成功");  });}

當(dāng)我們執(zhí)行

node flielist.js

就會(huì)生產(chǎn)filelist.txt,文件里面就包含了我們想要的路徑。

有時(shí),我們通常遇到刪除不了的文件,由于文件縱深太長(zhǎng)導(dǎo)致 rm _rf也刪不了,但是我們通過nodejs可以辦到:

var fs = require("fs");var path = require("path");deleteFolderRecursive = function(url) {  var files = [];  //判斷給定的路徑是否存在  if( fs.existsSync(url) ) {    //返回文件和子目錄的數(shù)組    files = fs.readdirSync(url);    files.forEach(function(file,index){      // var curPath = url + "/" + file;      var curPath = path.join(url,file);      //fs.statSync同步讀取文件夾文件,如果是文件夾,在重復(fù)觸發(fā)函數(shù)      if(fs.statSync(curPath).isDirectory()) { // recurse        deleteFolderRecursive(curPath);      // 是文件delete file        } else {         fs.unlinkSync(curPath);      }    });    fs.rmdirSync(url);  }else{    console.log("給定的路徑不存在,請(qǐng)給出正確的路徑");  }};deleteFolderRecursive("./grunt");

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平武县| 勃利县| 庆安县| 高要市| 出国| 绍兴县| 固镇县| 措美县| 巴中市| 东乡县| 邯郸市| 泸定县| 田阳县| 勃利县| 罗山县| 辽宁省| 永春县| 腾冲县| 门源| 灌云县| 什邡市| 银川市| 务川| 天津市| 玛多县| 宣化县| 阿拉善右旗| 健康| 师宗县| 齐河县| 杭锦旗| 延安市| 元阳县| 孟连| 咸阳市| 浮梁县| 惠安县| 方正县| 黑山县| 和龙市| 永城市|