Rumah hujung hadapan web tutorial js nodejs melaksanakan melintasi folder dan mengira saiz fail_node.js

nodejs melaksanakan melintasi folder dan mengira saiz fail_node.js

May 16, 2016 pm 03:57 PM
nodejs saiz fail folder perangkaan Melintasi

Sudah lebih 2 bulan sejak saya meninggalkan syarikat saya menulis banyak alatan sebelum ini, tetapi pada hari saya meninggalkan syarikat itu, saya secara peribadi memformat semua alatan dan kod yang telah saya kumpulkan sepanjang tahun lalu. Hari ini saya teringat masalah yang saya hadapi dalam projek sebelumnya dan merekodkannya hari ini.

Semasa saya mengoptimumkan memori, saya menemui beberapa gambar yang sukar dimuatkan semasa memuatkan saya menjumpai beberapa ikon kemahiran dengan saiz kecil 50x50, tetapi saiz gambar itu sangat besar, beberapa meter, jadi saya dapati. laluan dan dijumpai Apabila mengeluarkan ikon sebagai seni, saya terlupa untuk memampatkannya dan ikon menjadi sangat besar, yang mengakibatkan pemuatan tanpa henti.

Terdapat beribu-ribu fail seni dalam projek itu, dan ini adalah tugas fizikal untuk mencari masalah satu persatu. Saya menggunakan masa lapang saya untuk mencuba API sistem fail nodejs dan menulis demo kecil untuk memenuhinya keperluan, cepat menemui masalah, dan memberitahu artis untuk membetulkan gambar yang bermasalah. Selesaikan masalah dengan cara ini.

Sangat praktikal untuk mengira saiz fail ini Bahagian hadapan boleh mengira gambar ini dan memampatkan gambar yang lebih besar dengan cara yang disasarkan. Kerana mempunyai data sebagai rujukan memudahkan untuk mencari masalah.

Yang berikut menggunakan nodejs untuk melintasi kandungan fail folder, membaca semua fail dan mengeluarkannya mengikut tertib daripada besar ke kecil, dan akhirnya menjana fail, yang telah diisih. Anda boleh melihat sama ada fail tersebut mempunyai fail.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

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);

Salin selepas log masuk


Penggunaannya sangat mudah: var filesList = geFileList("G:/nodejs"); menukar parameter getFileList ke laluan yang anda mahu, dan menukar laluan parameter di dalam, iaitu, anda boleh melintasi fail dalam folder dan menjana sebuah fail.

Apabila terdapat banyak fail, adalah disyorkan untuk menggunakan penyunting teks yang lebih berkuasa untuk bacaan yang lebih mudah.

Berikut ialah saiz fail

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbezaan antara nodejs dan tomcat Perbezaan antara nodejs dan tomcat Apr 21, 2024 am 04:16 AM

Perbezaan antara nodejs dan tomcat

Perbezaan antara nodejs dan vuejs Perbezaan antara nodejs dan vuejs Apr 21, 2024 am 04:17 AM

Perbezaan antara nodejs dan vuejs

Adakah nodejs rangka kerja bahagian belakang? Adakah nodejs rangka kerja bahagian belakang? Apr 21, 2024 am 05:09 AM

Adakah nodejs rangka kerja bahagian belakang?

Apakah perbezaan antara fail npm dan npm.cmd dalam direktori pemasangan nodejs? Apakah perbezaan antara fail npm dan npm.cmd dalam direktori pemasangan nodejs? Apr 21, 2024 am 05:18 AM

Apakah perbezaan antara fail npm dan npm.cmd dalam direktori pemasangan nodejs?

Apakah pembolehubah global dalam nodejs Apakah pembolehubah global dalam nodejs Apr 21, 2024 am 04:54 AM

Apakah pembolehubah global dalam nodejs

Adakah nodejs bahasa pembangunan bahagian belakang? Adakah nodejs bahasa pembangunan bahagian belakang? Apr 21, 2024 am 05:09 AM

Adakah nodejs bahasa pembangunan bahagian belakang?

Adakah terdapat perbezaan besar antara nodejs dan java? Adakah terdapat perbezaan besar antara nodejs dan java? Apr 21, 2024 am 06:12 AM

Adakah terdapat perbezaan besar antara nodejs dan java?

Mana satu untuk dipilih antara nodejs dan java? Mana satu untuk dipilih antara nodejs dan java? Apr 21, 2024 am 04:40 AM

Mana satu untuk dipilih antara nodejs dan java?

See all articles