FTP und Progress Control
-
Moin,
ich weiß wie man FTP-Dateien runterlädt und wie man Progress Controls mit Informationen versorgt. Jedoch weiß ich nicht, wie man beim FTP-Download einen Status bekommt, wie viel Bytes schon runtergeladen wurden und mit welcher Geschwindigkeit...
Ich würde den Progress Control gerne so füllen:
m_ctlProgress.SetPos(int FTP_Download_Status);Den FTP-Download mache ich so:
BOOL bDownloaded = m_pFtpConnection->GetFile(Str,dlg.GetPathName(),FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,1);Wäre nett, wenn mir jemand einen kleinen Denkanstoß geben würde.
Gruß, Ellek.

-
Hallo,
GetFile ist bequem, da man nicht viel machen muß, um sich ein File abzuholen, aber genau deswegen ist es auch ungeeignet, den Status damit zu kontrollieren (der ganze Lesevorgang ist in GetFile verborgen). Du brauchst also mehr Kontrolle über das Lesen, und das heißt, daß du Methoden benötigst, die den Einlese-Vorgang auf Low-Level-Ebene durchführen. Und genau dafür werden die Methoden OpenFile (gibt einen CInternetFile-Zeiger zurück) und CInternetFile::Read (wird dann mit dem von OpenFile erhaltenen Zeiger eingesetzt) bereitgestellt. Das ganze ist auch in der MSDN-Lib als empfehlenswertes Vorgehen dokumentiert:
OpenFile should be used in the following situations:
[...]
An application needs a fine level of control over a file transfer. For example, the application may want to display a progress control indicate the progress of the file transfer status while downloading a file.versuche es also damit...
MfG
-
Danke schön.
