Oppure

Loading
04/06/10 13:53
systemgvp
salve,
ho un problema quando scarico i file da internet con le relative funzioni

Sorgente:= 'systemgvp.altervista.org/tritone/…';
Destinazione:= Cartella+'Trit.exe';
DownloadFile(Sorgente, Destinazione)

oppure con il controllo indy IdFTP

IdFTP1.Host:= 'systemgvp.altervista.org';
IdFTP1.Username:='***';
IdFTP1.Password:='***';
IdFTP1.Connect; //connessione
IdFTP1.Get('/tritone/Trit.zip',Destinazione);
IdFTP1.Abort; //disconnessione
ShowMessage(pchar('File trasferito'));

con entrambi i metodi l'operazione viene completata norlmalmente ma il
file risulta corrotto, col primo la dimensione varia di poco di quella
giusta e l'altro si ferma a circa un terzo. Perchè? premetto che per file
da poche centinaia di kb entrambe i metodi funzionano egregiamente.

aaa
08/06/10 19:35
Phi
Penso, anche se non son sicuro, che si possa fare anche così.

uses
  URLMon, ShellApi;

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
  try
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
  except
    Result := False;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
const
  SourceFile = 'http://altervista.org/Trit.exe';
  DestFile = 'c:.............Trit.exe';
begin
  if DownloadFile(SourceFile, DestFile) then
  begin
    ShowMessage('Download succesful!');
    ShellExecute(Application.Handle, PChar('open'), PChar(DestFile),
      PChar(''), nil, SW_NORMAL)
  end
  else
    ShowMessage('Error while downloading ' + SourceFile)
end;
aaa
08/06/10 19:49
systemgvp
no, non funziona perchè è quello che già faccio col primo metodo
aaa