![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Obtendo o tamanho de um arquivo em bytes, KB, MB ou GBQuantidade de visualizações: 23736 vezes |
|
Em algumas situações precisamos obter o tamanho de um arquivo em bytes e, se necessário, converter este valor em bytes para KB, MB ou GB. Esta dica mostra como isso pode ser feito. Aqui nós temos duas funções. A função TamanhoArquivoBytes() recebe o caminho e nome de um arquivo e retorna seu tamanho em bytes. Já a função TamanhoArquivoFormatado() recebe um valor em bytes e devolve uma string formatada. Veja o exemplo completo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// permite formatar o tamanho de um arquivo em bytes em
// Kb, Mb ou Gb
function TamanhoArquivoFormatado(const bytes: Longint): string;
const
b = 1; // byte
kb = 1024 * b; // kilobyte
mb = 1024 * kb; // megabyte
gb = 1024 * mb; // gigabyte
begin
if bytes > gb then
Result := FormatFloat('#.## GB', bytes / gb)
else if bytes > mb then
Result := FormatFloat('#.## MB', bytes / mb)
else if bytes > kb then
Result := FormatFloat('#.## KB', bytes / kb)
else
Result := FormatFloat('#.## bytes', bytes);
end;
// função que permite obter o tamanho de um arquivo em bytes
function TamanhoArquivoBytes(arquivo: string): Int64;
var
search_rec: TSearchRec;
begin
if FindFirst(arquivo, faAnyFile, search_rec) = 0 then
Result := Int64(search_rec.FindData.nFileSizeHigh) shl Int64(32)
+ Int64(search_rec.FindData.nFileSizeLow)
else
Result := -1;
FindClose(search_rec);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
arquivo: string;
begin
// nome do arquivo que queremos obter o tamanho
arquivo := 'C:\estudos_delphi\programa_vcl\arquivo.txt';
// exibe o resultado
ShowMessage('O tamanho do arquivo é: ' +
TamanhoArquivoFormatado(TamanhoArquivoBytes(arquivo)));
end;
Note que aqui nós usamos o campo FindData da estrutura TSearchRec. Este campo contém informações adicionais sobre um arquivo, tais como a data e hora de criação do arquivo, data e hora do último acesso, etc. Porém, este campo é específico à plataforma Windows, o que pode resultar em um warning do tipo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- [DCC Warning] Unit1.pas(54): W1002 Symbol 'FindData' is specific to a platform Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
|
Java - Como retornar os índices dos itens selecionados em uma JList de seleção múltipla do Java Swing Python - Como tratar o evento wx.EVT_MOVE em suas aplicações wxPython - Interfaces gráficas no Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





