Ir ao conteúdo

Tamanho do diretório


Kazu

Posts recomendados

Postado

Como faço para pegar o tamanho em bytes de um diretório usando Delphi ? Este diretório também possui sub-diretórios.

  • 2 semanas depois...
Postado

Utilize uma função recursiva para varrer todos os arquivos dentro do diretório e sub-diretorios e acumular o tamanho de cada um deles.

No final, retorne o tamanho total acumulado.

Segue o código, testado contra as propriedades da pasta do Windows Explorer (bateu).

function CalculaTamanhoDir(Path : String) : Integer;

var

SR : TSearchRec;

rc : Integer;

Tamanho : Integer;

begin

Tamanho := 0;

rc := FindFirst(Path+'\*.*', faDirectory, SR);

if rc = 0 then

begin

while rc = 0 do

begin

if (SR.Name = '.') or (SR.Name = '..') then

else

if (SR.Attr and faDirectory) <> 0 then

begin

Tamanho := Tamanho + CalculaTamanhoDir(Path+SR.Name);

end

else

begin

Tamanho := Tamanho + SR.Size;

end;

rc := FindNext(SR);

end;

FindClose(SR);

end;

result := Tamanho;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

TamanhoDir : Integer;

begin

TamanhoDir := CalculaTamanhoDir(ExtractFilePath(Application.ExeName));

ShowMessage(Format('%d', [TamanhoDir]));

end;

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...