Abortar download do IdFtp
16/06/2008
0
Mas vamos ao que interessa
Estou fazendo um atualizador do meu sistema usando o IdFtp 9 e Delphi 7.
Quando eu faço IdFtp1.Abort ele cancela o download numa boa. Mas não estou conseguindo apagar o arquivo que ele gerou ´pela metade´, ou seja, não é um arquivo completo.
Estou tentando fazer isso e não funciona, ele não apagar o arquivo e por consequencia o resto do código tb...rsss:
IdFTP1.Abort;
//apagar o arquivo que não foi completado
if FileExists(caminho_sistema) then
DeleteFile(caminho_sistema);
// voltar o nome do antigo .exe pois quando ele faz o download ele renomeia o arquivo original para .old
RenameFile(caminho_antigo,caminho_sistema);
Application.MessageBox(´Atualização cancelada pelo usuário!´+#13+13+´A versão anterior do sistema será restaurada.´+13+13+
´O sistema será reinicializado.´,´Atualização Cancelada´,MB_OK + MB_ICONINFORMATION);
WinExec(Pchar(caminho_sistema),SW_SHOWNORMAL);
IdFTP1.Disconnect;
Application.Terminate;
Já testei os caminhos e eles estão certos, o interessante que ele não deleta mas não dá nenhum erro.
Alguem pode me ajudar?
Obrigado
Altingon
Posts
16/06/2008
Emerson Nascimento
dê um tempinho antes de tentar deletar o arquivo.
algo assim:
IdFTP1.Abort; IdFTP1.Disconnect; // já desconecto depois de abortar o download // antes de apagar o arquivo que não foi completado, // espera 2 segundos para a gravação definitiva do arquivo // (note que 2 segundos pode ainda não ser suficiente) Sleep(2000); // apaga o arquivo que não foi completado if FileExists(caminho_sistema) then DeleteFile(caminho_sistema); // volta o nome do antigo .exe, pois quando ele faz o download // ele renomeia o arquivo original para .old RenameFile(caminho_antigo,caminho_sistema); Application.MessageBox( ´Atualização cancelada pelo usuário!´+#13+13+ ´A versão anterior do sistema será restaurada.´+13+13+ ´O sistema será reinicializado.´, ´Atualização Cancelada´, MB_OK + MB_ICONINFORMATION ); WinExec(Pchar(caminho_sistema),SW_SHOWNORMAL); Application.Terminate;
16/06/2008
Altingon
16/06/2008
Altingon
Valeu pessoal muito obrigado
Clique aqui para fazer login e interagir na Comunidade :)