Obter o espaço total e livre de um disco no Delphi
Inclua na seção 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, ... }
Para usar as funções DiskSize e DiskFree coloque SysUtils em uses.