![]() |
FTP via Indy
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; |
AW: FTP via Indy
Kannst du bitte Delphi-Tags verwenden mit einer korrekten Formatierung, so tut das lesen in den Augen weh :)
|
AW: FTP via Indy
bin ein Forumsgreenhorn - Was ist ein Delphi-Tag ???? - sorry - ich hab bisher noch keine Sourcen gepostet ;-)
|
AW: FTP via Indy
Dein FTP Root ist moeglicherweise nicht richtig. Connect und sie erstmal in welcher directory du bist, danach change dein dir, und danach gebe nur den file name als SourceFile und Path+File als DestFile.
Indy FTP nimmt den path von dem system als root path, nicht den von dem user. darum must erst schauen wo du bist. PS: The List format bringt nicht den file name sauber. du must es sauber machen. wenn ich mich richting erinnere the list function bringt was wie filename.xls | file | -rxrxxrx. Hope this helps. |
AW: FTP via Indy
Schau mal in die Hilfe:
Delphi-Quellcode:
"Dest" muss ein Stream sein.
procedure Get(
const ASourceFile: string, ADest: TIdStream, AResume: Boolean = false ); overload; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz