Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Arquivos, Diretórios e Discos

Como obter o espaço total e livre de um de disco, pen-drive, etc?

Banner

Inclua na seção uses: Windows, SysUtils, Dialogs

O procedimento PegaTamanhoVolume retorna a quantidade de bytes total e livres através de variáveis passadas por referência. Copie e cole este procedimento logo abaixo da palavra implementation no teu código-fonte.

procedure PegaTamanhoVolume(const Diretorio: AnsiString;
  var BytesTotal, BytesLivres: Int64);
begin
  if not GetDiskFreeSpaceEx(PAnsiChar(Diretorio), BytesLivres, BytesTotal, nil) then
    RaiseLastOSError;
end;

Para testar, siga os passos a baixo:

  • Coloque um botão em seu formulário.
  • Programe o evento OnClick deste botão como segue.

procedure TForm1.Button1Click(Sender: TObject);
var
  Total, Livre: Int64;
begin
  PegaTamanhoVolume('C:\', Total, Livre);
  ShowMessage(
    'Bytes total: ' + FormatFloat('#,##0', Total) + #13 +
    'Bytes livres: ' + FormatFloat('#,##0', Livre));
end;

Esta dica funciona também com um diretório compartilhado na rede, bastando substituir o endereço da unidade de disco local (C:\) pelo endereço de uma pasta compartilhada no computador remoto (\\computador\pasta).

O conteúdo desta página pode ajudar alguém? Compartilhe!