Ich habe eine kleine App, die einige Dateien von einem Remote-Server (HTTP) auf die lokale Festplatte des Benutzers herunterlädt, einige der Dateien sind groß, aber ich nicht wissen, wie groß zur Laufzeit ist. Gibt es eine Methode, mit der ich eine Datei mit einer Art Fortschrittsanzeige herunterladen kann?Laden Sie Datei von Web zu lokaler Datei mit Fortschrittsanzeige in C#
Dies ist eine WinForms App, im Moment benutze ich WebClient.DownloadFile(), um die Datei herunterzuladen.
Bearbeiten: Ich habe in die DownloadProgressChanged und OnDownloadProgressChanged Ereignisse untersucht und sie scheinen gut zu funktionieren, aber sie werden nicht für meine Lösung funktionieren. Ich lade mehrere Dateien herunter und wenn ich WebClient.DownloadFileAsync verwende, wird das Ereignis mehrmals/Sekunde aufgerufen, weil jede Datei es aufruft.
Hier ist die grundlegende Struktur der App: typischerweise etwa 114
- eine Liste von Dateien herunterladen und jedes seiner desination
ich herunterladen Es macht nichts, wenn ich jede Datei einzeln herunterlade, ohne sie mit DownloadFileAsync() herunterzuladen. Ich kann die Event-Handler nicht benutzen.
OnDownloadProgressChanged ist eine Methode und wird dem OP nicht helfen. Alles was es tut, ist, das DownloadProgressChanged-Ereignis wie in meiner Antwort anzuwerfen. Das Abfangen des Ereignisses ist erforderlich. – stevehipwell
Ich denke, du bist pingelig, Stevo. Ja, es ist erforderlich, die Veranstaltung zu verfolgen, und ich habe nie etwas anderes gesagt. –
Sie würden nie OnDownloadProgressChanged verwenden, alle Op muss ein Ereignis abfangen. OnDownloadProgressChanged verwirrt nur die Angelegenheit. – stevehipwell