65 lines
1.5 KiB
Plaintext
65 lines
1.5 KiB
Plaintext
#include "file.bi"
|
|
|
|
Dim As String directory = Curdir()
|
|
If Command(1) <> "" Then directory = Command(1)
|
|
|
|
Dim As String filename
|
|
Dim As Longint fileSize
|
|
Dim As Integer fileCnt(7) = {0, 0, 0, 0, 0, 0, 0, 0}
|
|
Dim As String categories(7) = {" < 1KB ", " 1KB - 10KB ", " 10KB - 100KB", "100KB - 1MB ", " 1MB - 10MB ", " 10MB - 100MB", "100MB - 1GB ", " > 1GB "}
|
|
|
|
If Right(directory, 1) <> "/" And Right(directory, 1) <> "\" Then directory &= "\"
|
|
|
|
filename = Dir(directory + "*.*")
|
|
|
|
Do While Len(filename) > 0
|
|
fileSize = Filelen(directory + filename)
|
|
|
|
Select Case fileSize
|
|
Case Is < 1000
|
|
fileCnt(0) += 1
|
|
Case 1000 To 9999
|
|
fileCnt(1) += 1
|
|
Case 10000 To 99999
|
|
fileCnt(2) += 1
|
|
Case 100000 To 999999
|
|
fileCnt(3) += 1
|
|
Case 1000000 To 9999999
|
|
fileCnt(4) += 1
|
|
Case 10000000 To 99999999
|
|
fileCnt(5) += 1
|
|
Case 100000000 To 999999999
|
|
fileCnt(6) += 1
|
|
Case Else
|
|
fileCnt(7) += 1
|
|
End Select
|
|
|
|
filename = Dir()
|
|
Loop
|
|
|
|
Print "File size distribution for: '"; directory; !"'\n"
|
|
|
|
Dim As Integer i, barWidth
|
|
Dim As Integer maxCnt = 0, total = 0
|
|
|
|
For i = 0 To 7
|
|
If fileCnt(i) > maxCnt Then maxCnt = fileCnt(i)
|
|
Next i
|
|
|
|
Const As Integer maxBarWidth = 50
|
|
|
|
For i = 0 To 7
|
|
barWidth = (fileCnt(i) * maxBarWidth) \ maxCnt
|
|
If fileCnt(i) > 0 And barWidth = 0 Then barWidth = 1
|
|
|
|
Print categories(i); ": ";
|
|
Print String(barWidth, Chr(178)); " "; fileCnt(i)
|
|
Next i
|
|
|
|
For i = 0 To 7
|
|
total += fileCnt(i)
|
|
Next
|
|
Print !"\nTotal number of files: "; total
|
|
|
|
Sleep
|