Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Florentin

Descobrir tamanho de arquivo

Recommended Posts

Saudações. sou novo neste forum e estou precisando da ajuda de vocês. Estou desenvolvendo um programa que busca em um disco por aquivos e os seleciona segundo seu tamanho e data de alteração. Estou usando o FindFirst e FindNext, mas quando o tamanho do arguivo é superior a 2.14 GB o valor retornado não é o correto. Isto ocorre porque o parâmetro retornado é do tipo inteiro e ocorre o estouro do valor.Alguém saberia me indicar outra forma de ler o tamanho de arquivos superiores a 2GB ou uma forma de contornar este problema?Desde já agradeço a ajuda de todos.Abraços,Fabiano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente também preciso de uma ajuda com tamanhos de arquivos, é o seguinte, preciso criar um arquivo texto e o mesmo não pode passar de 1M, se passar é pra quebrar em tantos arquivos quanto necessários para que cada um tenha no máximo 1M. Como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente também preciso de uma ajuda com tamanhos de arquivos, é o seguinte, preciso criar um arquivo texto e o mesmo não pode passar de 1M, se passar é pra quebrar em tantos arquivos quanto necessários para que cada um tenha no máximo 1M. Como posso fazer isso?

 

Fiz essa função. Veja se lhe é útil, espero que ajude.

 

 procedure QuebraArquivo1MB(FileName: string; MaxSizeByte: LongInt = 524288+524288 {1MB});
 var
     Arq, Arq2 : file of byte;
     buffer: array [1 .. 524288] of byte;//buffer de 1MB
     bufferSize: integer;
     cont, cont2 : integer; //
 begin
     AssignFile(Arq, FileName);
     Reset(Arq);
     bufferSize := Length(buffer);
     cont := 0;
     while(not(eof(Arq))) do
     begin
         inc(cont);
         AssignFile(Arq2, FileName+inttostr(cont));
         Rewrite(Arq2);
         //faz duas leituras de 512Kb
         for cont2 := 1 to Round(MaxSizeByte/length(buffer))+1 do
         begin
             BlockRead(Arq, buffer, bufferSize, BufferSize);
             BlockWrite(Arq2, buffer, BufferSize, BufferSize);
         end;
       //  BlockRead(Arq, buffer, bufferSize, BufferSize);
       //  BlockWrite(Arq2, buffer, BufferSize, BufferSize);
         CloseFile(Arq2);
     end;
     CloseFile(Arq);
 end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.