nodejs實現遍曆檔案夾並統計檔案大小,nodejs檔案大小

來源:互聯網
上載者:User

nodejs實現遍曆檔案夾並統計檔案大小,nodejs檔案大小

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

我在最佳化記憶體的時候,遇到一些圖片在載入的時候很難loading出現,發現一些技能表徵圖,尺寸很小50x50,但是圖片的大小卻很大,有幾m,於是找到路徑,發現是美術輸出表徵圖的時候因為忘記壓縮導致表徵圖變得很大,所以導致載入出現不停loading現象出現。

項目裡美術檔案也有幾千張那麼多,要一張張去找問題還真是一個體力活,當時利用閒置時間嘗試一下nodejs 檔案系統的API拼湊寫了一個小demo,滿足了一下需求,很快找到問題所在,把有問題的圖片告訴美術修改過來。這樣子解決問題。

關於這個檔案統計大小是很實用,前端可以統計這些圖片有針對性地較大的圖片進行壓縮。因為有一個資料作參考可以很方便找到問題。

下面使用nodejs的 遍曆檔案夾檔案內容,並且讀取所有的檔案,並採取排序往大到小的順序進行輸出,最後產生一個檔案,這個檔案已經排序好。可以看那些檔案是否有檔案。

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  {    //建立一個對象儲存資訊   var obj = new Object();   obj.size = states.size;//檔案大小,以位元組為單位   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 的參數修改成你想要的路徑,改變裡面參數路徑,即可以遍曆檔案夾的檔案,並產生 一份檔案。

檔案數多的時候,建議採用強大一點文字編輯器,這樣方便閱讀。

下面是檔案的大小

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.