Tamanho do Arquivo no FTP
Amigos,
Preciso baixar um arquivo via ftp. Estou usando o componente IdFtp.
Esse arquivo eu comeco a tentar localizar se ja chegou no ftp de tempos em tempos... O que ocorre é o seguinte. Se o arquivo a ser disponibilizado no FTP for muito grande (2mb) e o meu sistema comecar a tentar baixa-lo logo que o mesmo esteja sendo transferido (ou seja alguem jogou o arquivo no ftp e antes mesmo dele chegar por completo o sistema já tenta baixar), acontece de o sistema baixar o arquivo incompleto e pensar que está completo e que baixou tudo...
Estou tentando colocar uns Sleep pra dar tempo de efetuar algumas opercaoes, mas alem de estar atrasando o funcionamento do sistema, nao está dando certo... Se o tempo de download coincidir com o tempo de upload dá erro. (pois ele nao baixa o arquivo completo e pensa que baixou).
Minha saida foi tentar comparar o tamanho do arquivo no Ftp e no disco local, assim:
Mas ainda assim nao funciona...
Alguem tem alguma sugestão!?
Preciso baixar um arquivo via ftp. Estou usando o componente IdFtp.
Esse arquivo eu comeco a tentar localizar se ja chegou no ftp de tempos em tempos... O que ocorre é o seguinte. Se o arquivo a ser disponibilizado no FTP for muito grande (2mb) e o meu sistema comecar a tentar baixa-lo logo que o mesmo esteja sendo transferido (ou seja alguem jogou o arquivo no ftp e antes mesmo dele chegar por completo o sistema já tenta baixar), acontece de o sistema baixar o arquivo incompleto e pensar que está completo e que baixou tudo...
Estou tentando colocar uns Sleep pra dar tempo de efetuar algumas opercaoes, mas alem de estar atrasando o funcionamento do sistema, nao está dando certo... Se o tempo de download coincidir com o tempo de upload dá erro. (pois ele nao baixa o arquivo completo e pensa que baixou).
Minha saida foi tentar comparar o tamanho do arquivo no Ftp e no disco local, assim:
If (FileExists(wLocal)) And (TamArquivo(wLocal) > 0) Then Begin While (Dm.IdFTP1.Size(wRemoto) > TamArquivo(wLocal)) Do Inc(Cont); If (Dm.IdFTP1.Size(wRemoto) <= TamArquivo(wLocal)) Then Result := ´enviou´ Else Result := ´naoenviou´; End Else Result := ´naoenviou´; End;
Mas ainda assim nao funciona...
Alguem tem alguma sugestão!?
Rafaelunp
Curtidas 0
Respostas
Marciusbrandao
11/02/2005
rafael,
Tive o mesmo problema. A minha solução foi fazer o upload do arquivo primeiro com a extensão $$$ e quando terminar eu renomeio para XML :-).
Espero que tenha ajudado.
[]
Marcius
Tive o mesmo problema. A minha solução foi fazer o upload do arquivo primeiro com a extensão $$$ e quando terminar eu renomeio para XML :-).
Espero que tenha ajudado.
[]
Marcius
GOSTEI 0