[Hilfe] Downloader Speichert Daten nicht.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    [Hilfe] Downloader Speichert Daten nicht.

    Hallo liebe Community,

    Ich habe zur Zeit Folgendes Problem, wenn ich mit meinem Downloader etwas Downloade lädt er es zwar runter aber er Speichert es nicht, das Programm hängt sich dann nur auf und muss beendet werden. Könnte mir da bitte einer helfen?

    Source:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Public WithEvents downloader As WebClient
    4. Private Sub ToolStripContainer1_TopToolStripPanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    5. End Sub
    6. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    7. Form2.Show()
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. SaveFileDialog1.Filter = ".jpg|*.jpg|.exe|*.exe|.zip|*.zip|.rar|*.rar|.png|*.png|.gif|*.gif|.mp4|*.mp4|.iso|*.iso|.mp3|*.mp3"
    11. SaveFileDialog1.ShowDialog()
    12. TextBox2.Text = SaveFileDialog1.FileName
    13. End Sub
    14. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    15. downloader = New WebClient
    16. downloader.DownloadDataAsync(New Uri(TextBox1.Text), TextBox2.Text)
    17. Me.Button2.Enabled = False
    18. End Sub
    19. Private Sub downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloader.DownloadFileCompleted
    20. MsgBox("Download erfolgreich!", MsgBoxStyle.Information, "Erfolg!")
    21. Me.ProgressBar1.Value = 0
    22. Me.Label1.Text = "0%"
    23. Me.Button2.Enabled = True
    24. End Sub
    25. Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloader.DownloadProgressChanged
    26. Me.ProgressBar1.Value = e.ProgressPercentage
    27. Me.Label1.Text = e.ProgressPercentage & "%"
    28. End Sub
    29. End Class
    Hey,

    NiLUX schrieb:

    Ich habe zur Zeit Folgendes Problem


    Du hast mehrere Probleme, nicht nur das.

    1. Du rufst DownloadDataAsync auf, aber "wartest" auf DownloadFileCompleted. Lösung: DownloadFileAsync nutzen.
    2. Form2.Show ist Müll. Lösung: vb-paradise.de/allgemeines/tip…-und-aufruf-von-dialogen/
    3. Controls sind keine Zwischenspeicher.
    4. MsgBox durch MessageBox.Show() ersetzen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    SpaceyX schrieb:

    Hey,

    NiLUX schrieb:

    Ich habe zur Zeit Folgendes Problem


    Du hast mehrere Probleme, nicht nur das.

    1. Du rufst DownloadDataAsync auf, aber "wartest" auf DownloadFileCompleted. Lösung: DownloadFileAsync nutzen.
    2. Form2.Show ist Müll. Lösung: [VB 2010] Instanziierung von Forms und Aufruf von Dialogen
    3. Controls sind keine Zwischenspeicher.
    4. MsgBox durch MessageBox.Show() ersetzen.

    Erst einmal Danke für die Hilfe. Aber ich habe nicht ganz verstanden was ich jetzt ändern soll :S Ich meine das mit dem DownloadFileAsync, wie soll ich das richtig einfügen? Tut mir leid wenn es dumm klingt, bin leider noch ein blutiger Anfänger.
    Oje 8o Das ist ein Beispiel dafür, was es einem bringt, von irgendwo Code zu kopieren und nicht zu wissen, was es überhaupt bedeutet. Der Gedankensprung wäre jetzt nicht so groß gewesen.

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private WithEvents _wC As New WebClient With {.Proxy = Nothing}
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. _wC.DownloadFileAsync(New Uri("http://download.thinkbroadband.com/10MB.zip"), "testfile.zip")
    6. End Sub
    7. Private Sub _wC_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles _wC.DownloadFileCompleted
    8. MessageBox.Show("Download fertig")
    9. End Sub
    10. Private Sub _wC_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles _wC.DownloadProgressChanged
    11. Label1.Text = e.ProgressPercentage.ToString()
    12. ProgressBar1.Value = e.ProgressPercentage
    13. End Sub
    14. End Class


    Wenn Du keinen Proxy nutzt, empfiehlt es sich, diese Property auf Nothing zu setzen. Spart Dir evtl. ein bisschen Zeit, da so nicht versucht wird, diese Einstellung automatisch zu erkennen. Wie gesagt, nutze DownloadFileAsync und eigne Dir dringend Grundlagen an: microsoft.com/germany/msdn/akt…005DasEntwicklerbuch.aspx
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Okay also so?

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Public WithEvents downloader As WebClient
    4. Private Sub ToolStripContainer1_TopToolStripPanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    5. End Sub
    6. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    7. Form2.Show()
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. SaveFileDialog1.Filter = ".jpg|*.jpg|.exe|*.exe|.zip|*.zip|.rar|*.rar|.png|*.png|.gif|*.gif|.mp4|*.mp4|.iso|*.iso|.mp3|*.mp3"
    11. SaveFileDialog1.ShowDialog()
    12. TextBox2.Text = SaveFileDialog1.FileName
    13. End Sub
    14. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    15. downloader = New WebClient
    16. downloader.DownloadDataAsync(New Uri(TextBox1.Text), TextBox2.Text)
    17. Me.Button2.Enabled = False
    18. End Sub
    19. Private Sub downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloader.DownloadFileCompleted
    20. MessageBox.Show("Download erfolgreich!")
    21. Me.ProgressBar1.Value = 0
    22. Me.Label1.Text = "0%"
    23. Me.Button2.Enabled = True
    24. End Sub
    25. Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloader.DownloadProgressChanged
    26. Me.ProgressBar1.Value = e.ProgressPercentage
    27. Me.Label1.Text = e.ProgressPercentage & "%"
    28. End Sub
    29. End Class
    Was ist los mit Dir? Hab Dir doch ein Codebeispiel gegeben. Wenn Du das nicht mal übernehmen kannst, dann ist Programmieren wohl das falsche Hobby.

    Ändere DownloadDataAsync zu DownloadFileAsync
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o