none
Windows.Forms + Konsolenanwendung - Downloader? RRS feed

  • 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
    Montag, 21. Dezember 2009 18:03

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
    Montag, 21. Dezember 2009 18:56
    Moderator
  • 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
    Montag, 21. Dezember 2009 19:42

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
    Montag, 21. Dezember 2009 18:56
    Moderator
  • 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
    Montag, 21. Dezember 2009 19:42
  • 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
    Dienstag, 22. Dezember 2009 19:22
  • 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
    Dienstag, 22. Dezember 2009 19:23