Problem bei Multi-Select-Listbox-Downloader

  • VB.NET

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

    Problem bei Multi-Select-Listbox-Downloader

    Hallo liebe VB'ler,

    ich sitze seit langen an einem Projekt und dieses wird immer umfangreicher.
    Ich bastle gerade an einem Downloader der Sounds von Mediafire runterlädt. Er besteht aus einem Button mit dem man den Zielordner bestimmt, zwei Textboxen, einer Listbox mit den Namen der Sounds und einem weiteren Button zum downloaden.
    Die Funktionsweise besteht darin, dass man sich via FolderBrowserDialog einen Zielordner aussucht, der in die zwei Textboxen gespeichert wird und der gespeicherte Pfad dann wieder von dem Download-Button bearbeitet wird, damit die Datei so wie der ausgewählte Listbox-Eintrag heißt und kein fester Pfad von mir bestimmt werden muss (wollte keinen festen Ordner benutzen, weil ich das doof finde & den Usern nicht diese Freiheit nehmen möchte).
    Der Code ist wie folgt:


    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Public Class Form13
    4. Private Sub Form13_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. Dim a As New RichTextBox
    6. a.Text = My.Resources.Grünes___Graues__und_Rotes_Design
    7. For i As Integer = 0 To a.Lines.Count - 1
    8. ListBox1.Items.Add(a.Lines(i))
    9. Next i
    10. End Sub
    11. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    12. If FolderBrowserDialog1.ShowDialog() = DialogResult.OK
    13. Then TextBox1.Text = FolderBrowserDialog1.SelectedPath
    14. TextBox2.Text = FolderBrowserDialog1.SelectedPath
    15. End If
    16. End Sub
    17. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    18. If ListBox1.SelectedItem = "360 Noscope! " Then
    19. TextBox1.Text = FolderBrowserDialog1.SelectedPath + "" + ListBox1.SelectedItem + ".mp3" My.Computer.Network.DownloadFile("http://download2185.mediafire.com/89rjp1g4e2qg/2kidn85v7jih1gy/", TextBox1.Text)
    20. End If
    21. If ListBox1.SelectedItem = "Ähm ja..." Then
    22. TextBox2.Text = FolderBrowserDialog1.SelectedPath + "" + ListBox1.SelectedItem + ".mp3" My.Computer.Network.DownloadFile("http://download974.mediafire.com/pa8ajhbcfo4g/rb7tciwaf90wrc6/", TextBox2.Text)
    23. End If
    24. End Sub
    25. End Class



    So weit so gut, das ganze klappt auch ohne Probleme, solange ich die ListBox-Eigenschaft "SelectionMode" auf One stehen lasse.
    Ich habe jetzt aber keinen Bock meine Leute jeden Sound, den sie wollen, einzeln downloaden zu lassen, denn es werden um die 360 sein und deswegen habe ich den SelectionMode auf MultiExtended gestellt, damit man mehrere Einträge auswählen kann.
    Der Download klappt bloß nicht recht, denn es wird nur der aller erste Eintrag der Listbox heruntergeladen, die danach folgenden nicht. Ich bin mir ziemlich sicher, dass das an den If-Bedinungen liegt, aber bei dem Quatsch den ich da manchmal zusammen code kann es alles sein.
    Nun bin ich aber trotzdem mit meinen "Probieren geht über studieren"-Fähigkeiten am Ende.

    Könnt ihr dem "Neuling" hier bitte helfen? Bin für jeden Vorschlag offen und für jede Verbesserung, denn das meine Codes nicht die drallsten sind weiß ich. :thumbsup:


    Grüße,
    DEVILvenusxD
    Oh man, ich weiß nicht ob es am chronischen Schlafentzug liegt, aber ich blicks gerade nicht/kriege es nicht.
    Ich habe eben mit deinem Ansatz rumprobiert und das beste Ergebnis was erzielen konnte war, dass er mir die erste Datei zweimal downloaden wollte.
    Ich fühl mich gerade echt strohdumm.
    'Tschuldigung wenn ich nerve.

    DEVILvenusxD schrieb:

    Ich hab es nicht so mit For/For Each Scheilfchen und bin froh, dass ich sie immer vermeiden konnte.
    Tja, da musst du jetzt wohl programmieren lernen.
    Nicht nur Schleifen musst du lernen, auch empfiehlt sich, eine Methode zu schreiben, die genau einen Sound downloaded.
    Diese Methode kannst du dann bequem von innerhalb der Schleife aufrufen.

    Solch zu Lernen gibts nur eine Alternative: Programmieren aufhören :P

    Hier stehts drin: dieses Buch lesen (hingegen das Galileio-Openbook ist Mist)
    @DEVILvenusxD:: Wenn Du dann bereit bist, mehrere Dateien gleichzeitig downzuloaden, gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!