最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年05月28日 10:09:30   投稿:junjie  
這篇文章主要介紹了nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計文件大小,下面使用nodejs的遍歷文件夾文件內(nèi)容,并且讀取所有的文件,并采取排序往大到小的順序進(jìn)行輸出,需要的朋友可以參考下

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

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

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

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

下面使用nodejs的 遍歷文件夾文件內(nèi)容,并且讀取所有的文件,并采取排序往大到小的順序進(jìn)行輸出,最后生成一個文件,這個文件已經(jīng)排序好??梢钥茨切┪募欠裼形募?/p>

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)建一個對象保存信息
   var obj = new Object();
   obj.size = states.size;//文件大小,以字節(jié)為單位
   obj.name = file;//文件名
   obj.path = path+'/'+file; //文件絕對路徑
   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);


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

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

下面是文件的大小

相關(guān)文章

最新評論

嘉荫县| 汝阳县| 新巴尔虎左旗| 宝鸡市| 沙洋县| 比如县| 赤城县| 三原县| 新闻| 台南县| 青神县| 宝应县| 永昌县| 抚顺县| 英德市| 苏尼特右旗| 沂水县| 高要市| 玉门市| 海门市| 安溪县| 长海县| 黄浦区| 桐庐县| 阳城县| 体育| 拜泉县| 乾安县| 衡水市| 山东省| 辽阳市| 阜城县| 盖州市| 施甸县| 尚义县| 苍溪县| 隆子县| 岳池县| 容城县| 万安县| 千阳县|