Dicas - Como calcular o tamanho de um diretório

Veja nesta dica, como calcular o tamanho de um diretório.

Como calcular o tamanho de um diretório

 

Tente a seguinte função, que procura por arquivos “normais”, além de ocultos, de sistema e compactados. Usa um algoritmo recursivo para procurar em todos os sub-diretórios. Apenas forneça um diretório inicial como parâmetro.

 

var

  DirBytes: integer;

 

function FolderSize(Dir: string): integer;

var

  SearchRec: TSearchRec;

  Separator: string;

begin

  Result := 0;

  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;

end

else if DirectoryExists(Dir+Separator+SearchRec.Name) then

begin

if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then

begin

  FolderSize(Dir+Separator+SearchRec.Name);

end;

end;

while FindNext(SearchRec) = 0 do

begin

  if FileExists(Dir+Separator+SearchRec.Name) then

begin

DirBytes := DirBytes + SearchRec.Size;

end

else if DirectoryExists(Dir+Separator+SearchRec.Name) then

begin

  if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then

begin

FolderSize(Dir+Separator+SearchRec.Name) ;

end;

end;

end;

  end;

  FindClose(SearchRec) ;

  Result := DirBytes;

end;

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados