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

首頁(yè) > 編程 > JavaScript > 正文

nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計(jì)文件大小

2019-11-20 12:23:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

離開公司已經(jīng)有2個(gè)多個(gè)月,之前寫了不少工具,但在離開公司的當(dāng)天,我親手把一年來(lái)的所有積累工具和代碼都格式化了。今天想起之前在項(xiàng)目中遇到的一個(gè)問(wèn)題,今天將其記錄下來(lái)。

我在優(yōu)化內(nèi)存的時(shí)候,遇到一些圖片在加載的時(shí)候很難loading出現(xiàn),發(fā)現(xiàn)一些技能圖標(biāo),尺寸很小50x50,但是圖片的大小卻很大,有幾m,于是找到路徑,發(fā)現(xiàn)是美術(shù)輸出圖標(biāo)的時(shí)候因?yàn)橥泬嚎s導(dǎo)致圖標(biāo)變得很大,所以導(dǎo)致加載出現(xiàn)不停loading現(xiàn)象出現(xiàn)。

項(xiàng)目里美術(shù)文件也有幾千張那么多,要一張張去找問(wèn)題還真是一個(gè)體力活,當(dāng)時(shí)利用空閑的時(shí)間嘗試一下nodejs 文件系統(tǒng)的API拼湊寫了一個(gè)小demo,滿足了一下需求,很快找到問(wèn)題所在,把有問(wèn)題的圖片告訴美術(shù)修改過(guò)來(lái)。這樣子解決問(wèn)題。

關(guān)于這個(gè)文件統(tǒng)計(jì)大小是很實(shí)用,前端可以統(tǒng)計(jì)這些圖片有針對(duì)性地較大的圖片進(jìn)行壓縮。因?yàn)橛幸粋€(gè)數(shù)據(jù)作參考可以很方便找到問(wèn)題。

下面使用nodejs的 遍歷文件夾文件內(nèi)容,并且讀取所有的文件,并采取排序往大到小的順序進(jìn)行輸出,最后生成一個(gè)文件,這個(gè)文件已經(jīng)排序好。可以看那些文件是否有文件。

var fs = require('fs')//遍歷文件夾,獲取所有文件夾里面的文件信息/* * @param path 路徑 * */function geFileList(path){ var filesList = []; readFile(path,filesList); return filesList;}//遍歷讀取文件function readFile(path,filesList){ files = fs.readdirSync(path);//需要用到同步讀取 files.forEach(walk); function walk(file) {   states = fs.statSync(path+'/'+file);     if(states.isDirectory())  {   readFile(path+'/'+file,filesList);  }  else  {    //創(chuàng)建一個(gè)對(duì)象保存信息   var obj = new Object();   obj.size = states.size;//文件大小,以字節(jié)為單位   obj.name = file;//文件名   obj.path = path+'/'+file; //文件絕對(duì)路徑   filesList.push(obj);  }   }}//寫入文件utf-8格式function writeFile(fileName,data){  fs.writeFile(fileName,data,'utf-8',complete); function complete() {  console.log("文件生成成功"); } }var filesList = geFileList("G:/nodejs");filesList.sort(sortHandler);function sortHandler(a,b){ if(a.size > b.size) return -1; else if(a.size < b.size) return 1 return 0;}var str='';for(var i=0;i<filesList.length;i++){ var item = filesList[i]; var desc ="文件名:"+item.name + " "  +"大小:"+(item.size/1024).toFixed(2) +"/kb"+" "  +"路徑:"+item.path; str+=desc +"/n"}writeFile("test.txt",str);


使用方法很簡(jiǎn)單:將 var filesList = geFileList(“G:/nodejs”); 將getFileList 的參數(shù)修改成你想要的路徑,改變里面參數(shù)路徑,即可以遍歷文件夾的文件,并生成 一份文件。

文件數(shù)多的時(shí)候,建議采用強(qiáng)大一點(diǎn)文本編輯器,這樣方便閱讀。

下面是文件的大小

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泰宁县| 镇平县| 兴化市| 惠州市| 屏东市| 阜康市| 定远县| 长宁县| 周宁县| 鄢陵县| 会东县| 南陵县| 安宁市| 黔江区| 阿坝县| 衡阳市| 漠河县| 朝阳区| 唐山市| 白水县| 交城县| 北碚区| 大英县| 法库县| 阜新市| 平凉市| 新疆| 虹口区| 饶河县| 墨竹工卡县| 花莲市| 平塘县| 竹山县| 泰和县| 台州市| 枝江市| 荔浦县| 晴隆县| 浮梁县| 佳木斯市| 扎囊县|