Hm, der
FTP-Returncode wäre hilfreicher.
Es müsste aber ein 2xx Code sein, und diese sind keine Fehlercodes sondern Bestätigungscodes das der Server die Aktion erfolgreich ausgeführt hat.
Es sieht wohl so aus das der
FTP Server eine zusätzliche Message nachschickt, und deine
FTP Komponente damit nicht korrekt umgehen kann.
Falls es die aus dem
INDY Package ist dann kann ich bestätigen das diese teilweise nicht korrekt parsed.
es müsste
257 Directory created
sein. Verschiedene Server schicken zusätzliche Infos mit, etwa so
257-"PATHNAME" created
257 Directory created
Genau hier haben aber einige Komponenten Probleme, da sie das
FTP Protokoll viel zu starr und unflexibel parsen.
Ich habe einige
FTP Komponenten getestet und mich letzendlich für zwei Wege entschieden:
1.) auf Palms und Windows per Sockets selber das
FTP Protokoll umgesetzt, ist eigentlich nicht so schwierig
2.) auf Windows die FTPxxxx Funktionien benutzt
Nun, es spricht auf Server Seite aber nichts dagegen einen eigenen Messagecode zu benutzen. Solange er im Bereich von 200-299 liegt, heisst das der Befehl ausgeführt wurde. Die Probleme mit den
FTP Komponenten entstehen aber genau in diesem Moment. Sie parsen auf einen festen Returncode, z.b. eben 257, statt zu checken ob der Code zwichen 200-299 liegt. Diese "Fehlinterpretation" des
FTP protokolls entsteht durch die Protokolldefinition in den
RFC's selber. Dort sind eine Art von Beispielstruktogrammen abgebildet die dazu führen das man annehmen muß das exakt 257 vom Server als Bestätigung geschickt werden muß.
Ich habe einige
FTP Sourcen studiert und alle gehen von dieser falschen Annahme aus.
Falls deine
FTP Komponente den geparsten Returncode zwischenspeichert, und dann erst die
Exception raised, kannste ja im SEH diesen Code selber auswerten. Falls er zwischen 200-299 liegt ist alles ok.
Gruß Hagen