Drives - obter disk free e size

Top  Previous  Next

Como obter o espaço total e livre de um disco?

 

Coloque no uses: Windows

 

{ - Coloque um memo (TMemo) no form;

  - Coloque um botão e altere seu OnClick como abaixo: }

 

procedure TForm1.Button1Click(Sender: TObject);

var

  SetoresPorAgrup, BytesPorSetor, AgrupLivres,

  TotalAgrup: DWord;

begin

  Memo1.Clear;

  if GetDiskFreeSpace('C:\', SetoresPorAgrup, BytesPorSetor, AgrupLivres, TotalAgrup) then

  with Memo1.Lines do 

  begin

    Add('Setores por agrupamento: ' + IntToStr(SetoresPorAgrup));

    Add('Bytes por setor        : ' + IntToStr(BytesPorSetor));

    Add('Agrupamentos livres    : ' + IntToStr(AgrupLivres));

    Add('Total de agrupamentos  : ' + IntToStr(TotalAgrup));

    Add('----- Resumo -----');

    Add('Total de bytes         : ' + IntToStr(TotalAgrup  * SetoresPorAgrup * BytesPorSetor));

    Add('Bytes livres           : ' + IntToStr(AgrupLivres * SetoresPorAgrup * BytesPorSetor));

  end;

end;

 

{ O exemplo acima retorna as medidas em Bytes, Setores e

  Agrupamentos. Se preferir algo mais simples,

  use funções do Delphi. Veja: }

 

Memo1.Lines.Add('Total de bytes: ' + IntToStr(DiskSize(3)));

Memo1.Lines.Add('Bytes livres  : ' + IntToStr(DiskFree(3)));

 

{ Onde o parâmetro (3) é o número da unidade, sendo 1=A, 2=B, 3=C, ... }

 

Observações:

 

Para usar as funções DiskSize e DiskFree coloque SysUtils em uses.