FTP Load Status



  • Hi, Leute, hab mal ne Frage, wo mir Google nicht weiterhelfen konnte, oder ich such nach den falschen Begriffen.

    Alsoooo, ne Ftp Verbindung aufzubauen und zu schließen, Dateien runter und hochladen, is ja alles kein Problem. Die Klasse CFtpConnection liefert mir ja alles dahingehend. Jetzt würds mich aber mal interessieren wie ich es auf die Reihe bekomme, einen Loading Status (das mit dem netten Balker der anzeigt wieviel ich schon runter-/hochgeladen habe) zusammenzubasteln. Ich hatte dafür auch schon ne Idee umgesetzt.

    Wenn ich ne Datei runterlade hatte ich mir vorher die Dateigröße vom FTP Server geholt, und dann begonnen zu Downloaden. Und dann immer im Bestimmten Zyklus die Lokale Datei auf Ihre Größe geprüft, aber wenn VC++ die Datei darauf einliest, kommen immer 0 Byte zurück.

    Das ganze habe ich im Eigenen Worker Thread gemacht, aber wie gesagt bekomme ich von der Lokalen Datei immer nur 0 Byte zurück. Wenn ich im Windows Explorer schau wächst die Datei stetig. Deswegen habe ich diese Idee erst ausprobiert.

    Jetzt würde mich mal interessieren ob mein Ansatz mit dem Windows Explorer ganz falsch war, oder ob ich was anderes machen muss/kann.

    Gruß Markus Seidl



  • kannst ja mal in der wininet doku schaun
    ausm kopf wüsst ich nur wies bei http geht



  • Hi.

    Das mit dem 0 Bytes kann sein, weil eine Datei bei der erstellung ja nicht sofort auf Platte geschrieben wird, sondern erstmal im Cache.
    Die Datei ist zwar im System schon bekannt, das wärend dem DL nicht noch eine Datei mit dem selben Namen erstellt wird, aber der Inhalt ist womöglich noch im Cache.

    Mein Vorschlag:
    Is zwar ein bissl mehr Aufwand, aber schreib dir doch ne eigene Klasse mit der du Daten von nem FTP saugst. Dazu müsstest du dir zwar das FPT-Protokoll anschauen, aber dafür hast du dann volle Kontrolle und kannst auch ganz ohne Probleme auslesen wie viel Bytes gesendet/empfangen wurden.



  • Genau sowas wollte ich vermeiden, es gäbe noch eine Andere Technink, mit der man Daten vom FTP holt, is so ähnlich wie mit HTTP, eben Pakteweise, oder so. Ich wollte halt wissen ob es geht, ohne dabei so tief reinzugreifen. Klar eigenen Klasse anlegen, und verändern ist nicht das Problem, hab aber noch zu wenig Erfahrung für solche dinge, wenn ich die FTP Class ein wenig abändere, und sie mir in bestimmten abschnitten als Ereignis die Größe übergäbe, wäre das natürlich genial, dann bräuchte ich nur diese Nachricht abfangen.

    Aber es kann ja schlecht sein, dass ich der einzige mit dem Problem bin, gibbet da nicht irgendwo, ne kleine Beschreibung für. Ich wär ja mit fast allem zufrieden, wer programmiert darf ja auch schwere lesekost nicht scheuen, das ist mir Klar, aber eben solche Kost erstmal finden. Ich hatte mir jetzt schon Netz Protokolle angeschaut. In diesem Schriftstück wäre es zwar möglich einen Load Status reinzubringen, aber der Code ist mindestens 3 Mal so lang, und das nur für nen Lade Status.

    Vielleicht mal ein anderer Denkansatz, bei Verbindungsaufbau Port überwachen, und die Daten zählen, die auf diesen Port zu diesem Ziel fließen. Gäbs da vielleicht ne Flinke Möglichkeit. Mein Problem ist, wenn ich jetzt meinen Code stark umstelle, muss ich die Volle Zeit die ich bis jetzt reingesteckt habe, wieder reinstecken, damit es nach den Änderungen wieder funktioniert. Und ich versuche da ne abgekapselte Möglichkeit zu finden.

    Gruß

    Markus Seidl


Anmelden zum Antworten