Der Grund, warum in meinem WebClient-DownloadFileAsync-Methode das laden einer Leeren Datei?
Habe ich dieses C# - code, aber der Letzte esi.zip Ergebnisse 0 Länge oder im wesentlichen leer. Der URL vorhanden ist und bestätigt laden Sie die Datei manuell. Ich bin jedes mal verblüfft, kaufen Sie dieses.
string zipPath = @"C:\download\esi.zip";
Client.DownloadFileAsync(new Uri("http://ec.europa.eu/economy_finance/db_indicators
/surveys/documents/series/nace2_ecfin_1409/all_surveys_total_sa_nace2.zip"), zipPath)
Dank
AKTUALISIERT: ich aktualisierte den code, wo keine Leerzeichen vorhanden sind, aber es immer noch downloads 0 bytes.
- Ist, dass die riesigen Speicherplatz in der Bild-URL soll dort sein? Oder ist es da in deinem code? Nicht entfernen, dass der Raum das problem zu beheben?
- Haben Sie warten, bis die
DownloadFileCompleted
- Ereignis? - es gibt keine Leerzeichen in den code, es scheint nur das hinzufügen dieser stackoverflow kann seltsam sein. Shiva, können Sie über den gesamten C# - Datei, damit ich sehen kann, wbere mein Ende ist falsch? Dank
- Schauen Sie sich den code hier => dotnetfiddle.net/vjZAe2 Die Geige wird nicht laufen, weil
FileIOSecurityException
. Aber fallen Sie diesen code in Ihre lokale Konsole app. Das ist, was ich getan habe, und es läuft, und speichert die Datei, aber es ist0
bytes, wie Sie sagte. Sehr seltsam. - Ich reparierte es. Können den code herunterladen. - Post-it. Sie müssen rufen Sie
IsBusy
auf dieWebClient
zu warten, bis es zu laden. Auch, wenn Sie nicht angeben, ein browser-user-agent, URL / Website gibt einen502 Bad Gateway
. - Genial Shiva, ich erwarte Ihre code samplng. Hoffentlich kann anderen zu helfen, wie Sie mir geholfen auf jeden Fall.
- Nur veröffentlicht es. Überprüfen Sie es heraus.
- Ich bekomme
502 Bad Gateway
- check Shiva Beispiel für spoofing web-browser anzufordern. Sehr cool!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der funktionierende code. Es gab 2 Dinge, die Sie nicht dabei waren, verursacht wurde die
0
byte-Datei heruntergeladen werden.IsBusy
. Muss aufgerufen werden, um für den code zu warten, für den aktuellen thread abgeschlossen, da die eine asynchrone Aktion wird in einem neuen thread.Erstellen Sie eine leere Konsolenanwendung und fügen Sie den folgenden code in es und probieren Sie es aus.
Fügen Sie diesen code in Programm.cs-Datei in das leere/neue-Konsole-app.
Fügen Sie eine neue C# - Klassendatei namens DownloadManager und Tropfen Sie diesen code in es.
Jetzt Erstellen und ausführen die console app. Sie sollten die Fortschritte sehen, die in die Ausgabe der Konsole-Fenster so gerne.
Und wenn es abgeschlossen ist, sollten Sie die zip-Datei in dem angegebenen Speicherort in das
targetdownloadedFile
variable, in diesem Beispiel ist beiC:\Temp\TestZip.zip
auf Ihrem lokalen Rechner.Dies ist zwar ein Alter thread, der bisher gegebenen Antworten sind möglicherweise nicht ausreichend, lösen Sie die "leer-Datei" - problem.
Den Fall, die Sie herunterladen, von einem https sicheren Seite, die "DownloadComplete" callback kann auf einen Fehler-freien download, doch die heruntergeladene Datei könnte leer sein.
In meinem Fall, die Beratung hier geholfen. Nach dem hinzufügen der folgenden Zeile der download war ok: