Rubem a classe TSearchRec retorna o tamanho do arquivo de uma maneira muito simples.
var vSearchRec : TSearchRec; begin FindFirst(Application.ExeName, 0, vSearchRec); ShowMessage(FloatToStr(vSearchRec.Size / 1024) + ' Kb'); end; Mas o que me chamou muita atenção foi este comentário. - O tamanho do arquivo pode ser maior que 2 GB. Quando ocorre esta limitação ??? Eduardo Rubem Nascimento da Rocha escreveu: > > // Esta função determina o tamanho de um arquivo em bytes. > // O tamanho do arquivo pode ser maior que 2 GB. > function GetFileSizeEx(const FileName: String): Int64; > var > lHandle: Windows.THandle; > lFindData: Windows.TWin32FindData; > begin > // Define retorno default > Result := 0; > > // Obtém handle do arquivo > lHandle := Windows.FindFirstFile(PChar(FileName), lFindData); > if lHandle <> INVALID_HANDLE_VALUE then > begin > Windows.FindClose(lHandle); > Int64Rec(Result).Lo := lFindData.nFileSizeLow; > Int64Rec(Result).Hi := lFindData.nFileSizeHigh; > end; > end; > > // Copia o arquivo fonte para um arquivo destino, preservando sua data de > modificação. > procedure CopyFile(const Source, Dest: string); > var > SourceStream, DestStream: Classes.TFileStream; > begin > DestStream := nil; > // Abre streams de dados para os arquivos de origem e destino > SourceStream := Classes.TFileStream.Create( > Source, SysUtils.fmOpenRead or SysUtils.fmShareDenyWrite > ); > try > DestStream := Classes.TFileStream.Create( > Dest, Classes.fmCreate or SysUtils.fmShareExclusive > ); > try > // Copia arquivo da origem até o destino > DestStream.CopyFrom(SourceStream, SourceStream.Size); > > // Define a data de modificação do arquivo destino para a mesma do > arquivo origem > SysUtils.FileSetDate( > DestStream.Handle, SysUtils.FileGetDate(SourceStream.Handle) > ); > finally > // Fecha arquivo destino > DestStream.Free; > end; > finally > // Fecha arquivo origem > SourceStream.Free; > end; > end; > > Sds., > Rubem Rocha > Manaus, AM > > __________________________________________________________ > MSN Busca: fácil, rápido, direto ao ponto. http://search.msn.com.br > <http://search.msn.com.br> > >