我离开公司已经两个多月了。之前写了很多工具,但是离开公司的那天,我亲自格式化了过去一年积累的所有工具和代码。今天想起之前项目中遇到的一个问题,今天记录下来。
在优化内存的时候,遇到了一些加载时很难加载的图片,发现了一些技能图标,大小50x50比较小,但是图片的大小比较大,有好几米,于是找到了路径,发现在美术输出图标的时候,因为忘记压缩,图标变得很大,导致加载时出现不停加载的现象。
项目里有成千上万的美术档案,一个个找问题真的是个体力活。当时利用业余时间尝试了nodejs文件系统的API,拼凑了一个小演示,满足了需求,很快就发现了问题,并告诉美术修改有问题的图片。这样解决问题。
统计这个文件的大小是非常实用的,前端可以统计这些图像,压缩目标较大的图像。因为有数据可以参考,发现问题非常方便。
接下来,使用nodejs遍历文件夹文件的内容,读取所有文件,并按照从大到小的排序顺序输出,最后生成一个文件,这个文件已经排序好了。您可以查看这些文件中是否有任何文件。
Var fs=require('fs')//遍历文件夹获取所有文件夹中的文件信息/* * @ param path * */function ge file list(path){ var files list=[];readFile(路径,文件列表);返回文件列表;}//遍历并读取文件函数readfile(路径,文件列表){files=fs.readdirsync(路径);//需要同步读取file . foreach(walk);函数walk(file){ States=fs . statsync(path '/' file);if(States . isdirectory()){ readFile(路径'/' file,filestlist);} else {//创建一个对象保存信息var obj=new Object();obj . size=States . size;//文件大小,以字节为单位obj.name=file//文件名obj.path=路径'/'文件;//文件绝对路径filestlist . push(obj);} } }//写入文件utf-8格式函数writefile (filename,data) {fs.writefile (filename,data,' utf-8 ',完成);函数完成(){console.log('文件成功生成');} } var filestlist=gefilestlist(' g :/nodejs ');filestlist . sort(sort handler);函数sortHandler(a,b){ if(a.size b.size)返回-1;否则if(a.size b.size)返回1返回0;} var str=for(var I=0;ifilesList.lengthI){ var item=FileList[I];Var desc='文件名:' item.name ' '大小:' (item.size/1024)。tofixed (2)'/kb ' ' ' '路径: ' item.pathstr=desc ' n ' } write file(' test . txt ',str);使用方法很简单:放var file list=ge file list(" g :/nodejs ");将getFileList的参数修改到你想要的路径,改变里面的参数路径,也就是可以遍历文件夹中的文件,生成一个文件。
当文件较多时,建议使用更强的文本编辑器,以便于阅读。
以下是文件的大小