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;