Az alábbi függvény visszaadja a paraméterként megadott könyvtárban található (normál, rendszer és rejtett) fájlok összméretét. A rekurzív algoritmus megvizsgálja a könyvtárban található összes alkönyvtárat is. A visszatérő értéket a függvény a DirBytes változóban tárolja el lefutás után. uses FileCtrl; ... var DirBytes : integer; ... function TForm1.DirSize(Dir:string):integer; var SearchRec : TSearchRec; Separator : string; begin if Copy(Dir,Length(Dir),1)='\' then Separator := '' else Separator := '\'; if FindFirst(Dir+Separator+'*.*',faAnyFile,SearchRec) = 0 then begin if FileExists(Dir+Separator+SearchRec.Name) then begin DirBytes := DirBytes + SearchRec.Size; {Memo1.Lines.Add(Dir+Separator+SearchRec.Name);} end else if DirectoryExists(Dir+Separator+SearchRec.Name) then begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin DirSize(Dir+Separator+SearchRec.Name); end; end; while FindNext(SearchRec) = 0 do begin if FileExists(Dir+Separator+SearchRec.Name) then begin DirBytes := DirBytes + SearchRec.Size; {Memo1.Lines.Add(Dir+Separator+SearchRec.Name);} end else if DirectoryExists(Dir+Separator+SearchRec.Name) then begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin DirSize(Dir+Separator+SearchRec.Name); end; end; end; end; FindClose(SearchRec); end;