Hallo Zusammen,
eigentlich ist es ja recht einfach via
FTP einen Download zu realisieren.
Aber nach der Umstellung auf Delphi2010 hab ich einige Probleme.
Den angehängten (vereinfachten) Code benutze ich, um eine Reihe von Exceldateien regelmäßig von einem
FTP-Server abzuholen.
In einer global verfügbaren Struktur mit dem Namen "Ini" sind alle benötigten Informationen korrekt enthalten.
Die Klasse
FTP wurde als Komponente ins Formular gezogen.
Der Transfertyp steht auf ftBinary - ich hab's beim Debuggen überprüft.
Nach Abarbeitung der Funktion sind die Excel-Dateien zwar auf der lokalen Maschine, jedoch sind diese nicht mehr lesbar.
Durch den Transport werden alle Dateien (egal ob Excel oder sonstwas) zerstört.
Ein Download mittels Explorer funktioniert und liefert auch korrekte Dateien.....
Hat irgendjemand eine Idee, was ich hier falsch mache.
Ich benutze Delphi2010 Enterprise mit den
Indy-Komponenten im Original-Auslieferungszustand.
Function Download:Boolean;
Var
FList :TStringList;
i :Integer;
Source,
Dest : String;
begin
FTP.Host := ini.FTPHost;
FTP.Username := ini.FTPSer;
FTP.Password := ini.FTP_Password;
FTP.Transfertype := ftBinary;
Try
FTP.Connect;
Except
EXIT;
end;
// Versuche ins Quellverzeichnis zu wechseln .....
Try
FTP.ChangeDir(ini.FTP_SourceDir);
Except
EXIT;
end;
Application.ProcessMessages;
// lesen des Verzeicnisinhaltes
FList := TStringList.Create;
FTP.List(FList,'',FALSE);
// alle Dateien durchlaufen und XLS-Files via
FTP.Get() abholen
For i:=0 to FList.Count-1 do
Begin
Source := FList[i];
If Pos('.XLS',Uppercase(Source)) > 0 Then
Begin
Dest := Ini.LocalDir + Source;
Try
FTP.Get(Source , Dest , True);
Except
//....
End;
End
End;
FList.Free;
end;