So zeigen Sie den download-Fortschritt von FTP

Ich bin das herunterladen einer Datei von einer FTP-site (Async) und benötigen ein update ein Fortschritt bar. Ich habe gelesen, MS-Dokumentation, die besagt, dass dies getan werden kann, ist die WebClient-Klasse ist GetWebRequest() ist ovverriden so die 'UsePassive' - Eigenschaft auf 'false'. Ich habe dies getan, aber " DownloadProgressChanged event-argument ProgressPercentage ist immer == '0'.

Kann mir jemand sagen, wie man dieses argument zu beginnen Rückkehr der Werte?

Dies ist der download-Methode:

            FTPClient request = new FTPClient();
            request.Credentials = new NetworkCredential(user, password);
            request.DownloadProgressChanged += UpdateProgress;
            request.DownloadFileAsync(ftpepath,destinationpath);

Dies ist der FTPClient (wo ich bin übergeordnete GetWebRequest()):

class FTPClient : WebClient 
    {
        protected override WebRequest GetWebRequest(System.Uri address)
        {
            FtpWebRequest req = (FtpWebRequest) base.GetWebRequest(address);
            req.UsePassive = false;
            return req;
        }
    }

Und meine Callback-wenn es hilft:

 void UpdateProgress(object sender, DownloadProgressChangedEventArgs e)
        {
            dwnProgress.Value = e.ProgressPercentage;
            dwnprcnt.Text = PercentProgress.ToString() + "%";
        }
  • Um den Fortschritt zu zeigen, müssen Sie rufen Sie die Funktion in einem separaten thread, so dass es blockiert die Benutzeroberfläche der Anwendung, ob Ihr für oder web-Seite.
InformationsquelleAutor Nick | 2010-02-24
Schreibe einen Kommentar