Anregung für FTP-Library gesucht

kuscheltier

Grünschnabel
Hey und Hallo,

vielleicht kann mir ja hier jemand einen Tipp bzw. eine Anregung geben,
ich bin zumindest im Moment relativ ratlos.

Da es im Framework 1.0 bzw. 1.1 keine wirkliche Unterstützung für die
FTP-Kommunikation gab, hatte ich seinerzeit mit der Entwicklung einer
FTP-Library angefangen. Für ein neues Projekt (Synchronisation zwischen
Lokalem/ Remote-Verzeichnis) habe ich die Komponente wieder
hervorgekramt und um die neuen Funktionen erweitert. Prinzipiell läuft
das Tool auch ganz ok, habe nur ein Problem ausgemacht wo ich mir nicht
sicher bin wie ich das am besten lösen kann/ könnte.

Für die FTP-Synchronisation benötige ich genaue Informationen über die
Dateien welche im aktuellen Verzeichnis vorhanden sind. Dafür sende ich
an den Server die entsprechenden Kommandos (LIST bzw. NLST) und werte
den entsprechenden Response dann zeilenweise aus bzw. führe weitere
Kommandos (MDTM/ SIZE) aus um die benötigten Dateiinformationen zu
erhalten..

Mein Problem bei beiden Varianten ist die Verarbeitungsgeschwindigkeit
für das Auflisten eines Verzeichnisinhaltes. Je mehr Dateien vorhanden
sind (und je langsamer der FTP-Server antwortet) umso länger dauert
dieser Vorgang und ich hab teilweise das Problem das ich auf einen "No
Transfer Timeout" laufe.

Wenn ich mir den gleichen Vorgang bei anderen FTP-Clients (z.B.
FileZilla) anschaue ist dies beim gleichen FTP-Server in wenigen
Sekunden erledigt, bei meiner Variante braucht das für den gleichen
Server teilweise mehrere Minuten.

Kennt vielleicht von euch jemand einen Trick/ Tipp wie man den Response
des FTP-Servers wesentlich schneller verarbeiten kann/ könnte oder ein
Tutorial/ andere offene FTP-Library die das performanter gelöst haben
und wo ich mir entsprechende Ideen abschauen kann?!
Den Source habe ich schon soweit optimiert (Schleifen eleminiert bzw.
zusammengefasst, ...) das dort keinerlei weitere Verbesserungen mehr
möglich sind, da die Geschwindigkeit sich aber nicht merklich
verbessert, denke ich mal das ich einen Grundlegenden Designfehler
begangen habe...
 

Neue Beiträge

Zurück