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: 23544 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: // 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 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: [DCC Warning] Unit1.pas(54): W1002 Symbol 'FindData' is specific 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 |
C# - Como converter um tipo string para um tipo decimal em C# usando o método Parse() da classe Decimal |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |