[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: getting folder size


On 3/12/24 15:36, Benoît Minisini wrote:
Le 12/03/2024 à 20:17, Bruce Steers a écrit :
I made a function to get a folder size but it differs to du command.

I've tried many different things and have no clue as to why i am only getting partly matched results.
I'm missing something along the line.

My routine is simply this...

Public Sub DirSize(Folder As String) As Long

   Inc iCount

   Dim iSize As Long
   With Stat(Folder)
     iSize += .Size
     If .Type = gb.Link Then Return ' do not compute if a link
   End With

   For Each sItem As String In Dir(Folder)
     With Stat(Folder &/ sItem)
       If .Type = gb.Directory Then
         iSize += DirSize(Folder &/ sItem)
       Else
         iSize += .Size
       Endif
     End With
   Next
   Print iCount, iSize; "\r";

   Return iSize

End

checking most folders gives a match to "du -sb" command but some do not.

/home/bonus/.local/share
130117  4959360696
4959360696      (mine)
4327428432  : out by 631932264 (du -sb)

/home/bonus/.config
498     1367011275
1367011275      (mine)
1367011275  : MATCH (du -sb)

Like i say "most" folders are giving a match but some do not.

Is my code at fault? is the du command wrong?

Does anyone have some well written directory size calculator code?
Attached is a test prog with the function

Respects and thanks in advance
BruceS


I guess symbolic links are not counted the same way...


Perhaps. I get a "MATCH" on both of those folders. I have zero links in either of them.

--
Lee

--- Gambas User List Netiquette [https://gambaswiki.org/wiki/doc/netiquette] ----
--- Gambas User List Archive [https://lists.gambas-basic.org/archive/user] ----


Follow-Ups:
Re: getting folder sizeBrian G <brian@xxxxxxxxxxxxxxxx>
References:
getting folder sizeBruce Steers <bsteers4@xxxxxxxxx>
Re: getting folder sizeBenoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>