Delphi, calculate directory size
Code for fast calculating directori size in Delphi.
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 |
function TForm1.calclDirSize(dir: string): LongInt; var totalSize: LongInt; procedure Find(Str: string); var MySearch: TSearchRec; FindResult: integer; begin FindResult := FindFirst(Str + '\*.*', faArchive + faHidden + faAnyFile + faVolumeID + faSysFile + faDirectory, MySearch); while FindResult = 0 do begin if (MySearch.Attr = faDirectory) and (MySearch.Name <> '.') and (MySearch.Name <> '..') then Find(Str + '\' + MySearch.Name) else totalSize := totalSize + MySearch.Size; FindResult := SysUtils.findNext(MySearch); end; FindClose(MySearch); end; begin totalSize := 0; Find(dir); result := totalSize; // return size in bytes... divide 1024 for KB end; |