亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

下面使用nodejs的 遍歷文件夾文件內(nèi)容,并且讀取所有的文件,并采取排序往大到小的順序進行輸出,最后生成一個文件,這個文件已經(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)建一個對象保存信息
   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ù)多的時候,建議采用強大一點文本編輯器,這樣方便閱讀。

下面是文件的大小

相關(guān)文章

  • 使用Node.js實現(xiàn)一個多人游戲服務(wù)器引擎

    使用Node.js實現(xiàn)一個多人游戲服務(wù)器引擎

    這篇文章主要給大家介紹了關(guān)于如何使用Node.js實現(xiàn)一個多人游戲服務(wù)器引擎的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用Node.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • nodejs個人博客開發(fā)第五步 分配數(shù)據(jù)

    nodejs個人博客開發(fā)第五步 分配數(shù)據(jù)

    這篇文章主要為大家詳細介紹了nodejs個人博客開發(fā)的分配數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • node.js報錯:npm?ERR?code?EPERM的解決過程

    node.js報錯:npm?ERR?code?EPERM的解決過程

    在學(xué)習(xí)vue+typescript的時候突然發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關(guān)于node.js報錯:npm?ERR?code?EPERM的詳細解決過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Node.js中Request模塊處理HTTP協(xié)議請求的基本使用教程

    Node.js中Request模塊處理HTTP協(xié)議請求的基本使用教程

    這篇文章主要介紹了Node.js中Request模塊處理HTTP請求的基本使用教程,request也支持OAuth的簽名請求,很好很強大,需要的朋友可以參考下
    2016-03-03
  • node.js包管理工具Yarn使用簡介

    node.js包管理工具Yarn使用簡介

    這篇文章介紹了JS包管理工具Yarn的基本用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Node.js+ES6+dropload.js實現(xiàn)移動端下拉加載實例

    Node.js+ES6+dropload.js實現(xiàn)移動端下拉加載實例

    這個demo服務(wù)由Node搭建服務(wù)、下拉加載使用插件dropload,數(shù)據(jù)渲染應(yīng)用了ES6中的模板字符串。有興趣的小伙伴可以自己嘗試下
    2017-06-06
  • 使用Node.js實現(xiàn)遍歷文件夾下所有文件

    使用Node.js實現(xiàn)遍歷文件夾下所有文件

    在使用Node.js處理文件或文件夾時,我們有時需要遍歷文件夾中的所有文件和子文件夾以查找特定的文件或執(zhí)行某些操作,這里將提供一些基本的例子來演示如何使用Node.js遍歷文件夾,需要的朋友可以參考下
    2023-08-08
  • Node.js開發(fā)第三方微信公眾平臺

    Node.js開發(fā)第三方微信公眾平臺

    這篇文章主要介紹了Node.js開發(fā)第三方微信公眾平臺的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 從零開始學(xué)習(xí)Node.js系列教程一:http get和post用法分析

    從零開始學(xué)習(xí)Node.js系列教程一:http get和post用法分析

    這篇文章主要介紹了從零開始學(xué)習(xí)Node.js系列教程一:http get和post用法,結(jié)合具體實例形式分析了nodejs中g(shù)et與post請求的使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04
  • node.js中的http.response.getHeader方法使用說明

    node.js中的http.response.getHeader方法使用說明

    這篇文章主要介紹了node.js中的http.response.getHeader方法使用說明,本文介紹了http.response.getHeader的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論