Benutzer mit den meisten Antworten
Windows.Forms + Konsolenanwendung - Downloader?

Frage
-
Hallo zusammen,
Ich möchte gerne ein Programm schreiben, welches ein File herunterlädt, speichert, und danach gleich ausführt.
Das Programm sollte z.B http://www.centro-ffm.de/de/sprachreisen/sonnenuntergang-jaco-1.jpg downloaden, auf dem Desktop abspeichern, und anschliessend anzeigen.
Ich möchte dies auf 2 verschiedene Varianten machen.
Bei der ersten Variante möchte ich es mit Windos.Forms machen, und zwar mit einem Backgroundworker. Falls das möglich ist!
Bei der zweiten Variante möchte ich es in einer Konsolenanwendung programmieren, wobei ich mir nicht ganz sicher bin ob das downloaden bei einer Konsolenanwendung möglich ist.
Die beiden Programme (Windows.Forms und die Konsolenanwendung) haben nichts miteinander zu tuhn.
Wollte einfach mal sehen ob das möglich ist :)
MfG
Snize
Antworten
-
Hallo,
um Ressourcen aus dem Internet herunterzuladen und lokal abzuspeichern, bietet die WebClient Klasse mit DownloadFile eine entsprechende Methode an. Dazu gibt es auch eine passende asynchrone Methode DownloadFileAsync, um diese Aufgabe im Hintergrund zu erledigen. Auf den Einsatz des BackgroundWorker solltest Du hier verzichten können.
Alternative dazu stellt die HttpWebRequest Klasse dar. Diese bietet ebenfalls neben der GetResponse Methode BeginGetResponse auch asynchrone Methoden zum Abrufen der Ressourcen an. Speichern der Datei erfolgt hier dann über einen FileStream.
Beide funktionieren sowohl in einer Windows Forms, als auch in einer Konsolenanwendung. Beispiele finden sich bei der Dokumentation der genannten Methoden.
Um die gespeicherte Datei mit der verknüpften Standardanwendung zu öffnen, kannst Du die Process.Start() Methode mit dem Dateinamen der lokal gespeicherten Datei verwenden.
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort vorgeschlagen Thorsten DörflerModerator Dienstag, 22. Dezember 2009 20:19
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 25. Dezember 2009 21:27
-
Ergänzend zu Thorstens Ausführungen kannst du dir mal die kleine Konsolendemo auf meiner Homepage anschauen:
<Tipps und Tricks - informtools - Tipp 354>
http://www.informtools.de/kb.aspx?id=354
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 21. Dezember 2009 19:43
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 25. Dezember 2009 21:28
Alle Antworten
-
Hallo,
um Ressourcen aus dem Internet herunterzuladen und lokal abzuspeichern, bietet die WebClient Klasse mit DownloadFile eine entsprechende Methode an. Dazu gibt es auch eine passende asynchrone Methode DownloadFileAsync, um diese Aufgabe im Hintergrund zu erledigen. Auf den Einsatz des BackgroundWorker solltest Du hier verzichten können.
Alternative dazu stellt die HttpWebRequest Klasse dar. Diese bietet ebenfalls neben der GetResponse Methode BeginGetResponse auch asynchrone Methoden zum Abrufen der Ressourcen an. Speichern der Datei erfolgt hier dann über einen FileStream.
Beide funktionieren sowohl in einer Windows Forms, als auch in einer Konsolenanwendung. Beispiele finden sich bei der Dokumentation der genannten Methoden.
Um die gespeicherte Datei mit der verknüpften Standardanwendung zu öffnen, kannst Du die Process.Start() Methode mit dem Dateinamen der lokal gespeicherten Datei verwenden.
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort vorgeschlagen Thorsten DörflerModerator Dienstag, 22. Dezember 2009 20:19
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 25. Dezember 2009 21:27
-
Ergänzend zu Thorstens Ausführungen kannst du dir mal die kleine Konsolendemo auf meiner Homepage anschauen:
<Tipps und Tricks - informtools - Tipp 354>
http://www.informtools.de/kb.aspx?id=354
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Montag, 21. Dezember 2009 19:43
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 25. Dezember 2009 21:28
-
Hallo,
um Ressourcen aus dem Internet herunterzuladen und lokal abzuspeichern, bietet die WebClient Klasse mit DownloadFile eine entsprechende Methode an. Dazu gibt es auch eine passende asynchrone Methode DownloadFileAsync , um diese Aufgabe im Hintergrund zu erledigen. Auf den Einsatz des BackgroundWorker solltest Du hier verzichten können.
Alternative dazu stellt die HttpWebRequest Klasse dar. Diese bietet ebenfalls neben der GetResponse Methode BeginGetResponse auch asynchrone Methoden zum Abrufen der Ressourcen an. Speichern der Datei erfolgt hier dann über einen FileStream.
Thorsten Dörfler
Microsoft MVP Visual Basic
Guten Abend,
Ich danke Ihnen für die Antwort.
Habe die Klasse und die Methode ausprobiert, funktioniert wie gewünscht!
Einen schönen Abend noch,
Snize -
Ergänzend zu Thorstens Ausführungen kannst du dir mal die kleine Konsolendemo auf meiner Homepage anschauen:
<Tipps und Tricks - informtools - Tipp 354>
http://www.informtools.de/kb.aspx?id=354
--
Peter
Guten Abend,
Ich danke Ihnen vielmal für den Link.
Ihre Seite hat die nächste Frage bereits gedeckt mit Informationen :)
Einen schönen Abend noch,
Snize