Fórum como descobrir o tamanho de um arquivo texto #369567
02/04/2009
0
Pestana_
Curtir tópico
+ 0Posts
02/04/2009
Marcosrocha
with TFileStream.Create(´C:\Windows\explorer.exe´, fmOpenRead or fmShareExclusive) do try Edit1.Text := IntToStr(Size); finally Free; end;
Gostei + 0
03/04/2009
Pestana_
eu estava olhando este comando no help do Delphi, mas eu não entendi uma coisa, o sistema carrega o arquivo na memoria? digo isso porque eu preciso saber somente qual é tamanho do arquivo em bytes, sem carregar na memoria, algo do tipo acessando diretamente o arquivo.
Atenciosamente,
Pestana.
Gostei + 0
03/04/2009
Lehapan
verifique se é isto que você quer.
procedure TForm1.Button1Click(Sender: TObject); var f: file of Byte; size: Longint; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); try size := FileSize(f); Showmessage( ´File size in bytes: ´ + IntToStr(size) ); finally CloseFile(f); end; end; end;
espero ter ajudado
Gostei + 0
03/04/2009
Marcosrocha
Não, o código não carrega inteiro para a memória. Ele abre o arquivo colocando na estrutura TFileStream todos os dados sobre o arquivo e posicionando o ponteiro de dados na posição 0, ou seja, se você quiser ´ler´ o arquivo, teria mais coisa a fazer.
A título de informação, executo essa rotina em arquivos com mais de 400Mb e pegar o tamanho do arquivo não demora nem 1 milisegundo.
Gostei + 0
03/04/2009
Pestana_
Não, o código não carrega inteiro para a memória. Ele abre o arquivo colocando na estrutura TFileStream todos os dados sobre o arquivo e posicionando o ponteiro de dados na posição 0, ou seja, se você quiser ´ler´ o arquivo, teria mais coisa a fazer.
A título de informação, executo essa rotina em arquivos com mais de 400Mb e pegar o tamanho do arquivo não demora nem 1 milisegundo.[/quote:ef3c115a95]
Marcos você tem razão é isso mesmo, resolveu meu problema, muito obrigado pela ajuda!
Gostei + 0
03/04/2009
Pestana_
procedure TForm1.Button1Click(Sender: TObject); var f: file of Byte; size: Longint; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); try size := FileSize(f); Showmessage( ´File size in bytes: ´ + IntToStr(size) ); finally CloseFile(f); end; end; end;
lehapan muito obrigado pela ajuda, a sua solução tambem resolve o problema, só uma dúvida o AssignFile tambem é parecido TFileStream ele não carrega o arquivo para a memoria, ele somente associa com o arquivo, é isso mesmo?
Gostei + 0
03/04/2009
Pestana_
pelo que eu entendi, os dois aceita qualquer tipo de arquivo e abre e escreve no arquivo externo, é isso mesmo ou estou enganado? então qual a diferença?
Obrigado mais uma vez!
Pestana.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)