[FRAGE]VB auslesen einer Patchlist für Updater

01/28/2011 06:53 RevanTechno#1
Ich bin gerade dabei einen Patcher zu machen und ich möchte nun folgendes:

Ich habs schon mit webclient versucht und klappt alles auch wunderbar doch er soll ja mehrere datein downloaden. Deswegen hab ich was anderes gemacht:

Code:
        ProgressBar1.Value = "2"
        TextBox1.Text = "DATEINAME wird geprüft."
        If My.Computer.FileSystem.FileExists("DATEINAME") Then
            My.Computer.FileSystem.DeleteFile("DATEINAME")
            TextBox1.Text = "DATEINAME wurde gelöscht."
        End If
        My.Computer.Network.DownloadFile("DOWNLOAD-LINK", "SPEICHERORT")
        TextBox1.Text = "DATEINAME wurde heruntergeladen."
        ProgressBar1.Value = "3"
Ist zwar nicht der einfachste weg aber geht ganz gut.
Aber es wär ja echt blöd das mit jeder datei zu machen. Wie kann ich nun machen das er einfach eine Textdatei mit den Links ausliest und die Downloadet?
Soll ich das mit ner Ini datei machen?
Oder wie sonst?

Danke.

Best Regards
RevanTechno
02/12/2011 21:41 Diego²#2
Hab das gleiche Problem...
02/13/2011 11:45 krustx#3
lol xD
okay, ich helf euch mal.
Also wir gehen davon aus, dass die Links alle untereinander stehen in er Textdatei.
Code:
dim Links() as String = Split(My.computer.filesystem.readalltext("PFAD ZUR TXT"),vbnewline)
Progressbar1.Maximum = Links.count 'glaube in vs2010 heißt es .length
For each Link as String in Links
if Link <> "" then
My.Computer.network.downloadFile(Link,"Speicherort")
Progressbar1.Value += 1
end if
next
nun gibt es ein kleines Problem, weil man so die Dateien immer überschreiben würde. Da gibts viele Lösungen. Entweder ließt man anhand des Downloadlinks den Dateinamen aus, oder man schreibt den Dateinamen mit in die Textdatei, das wäre wohl am einfachsten.

Wir gehen davon aus, dass die Links untereinander in der TXT stehen und dahinter durch ein ; getrennt der Dateiname kommt:

Code:
dim Zeilen() as String = Split(My.computer.filesystem.readalltext("PFAD ZUR TXT"),vbnewline)
Progressbar1.Maximum = Zeilen.count 'glaube in vs2010 heißt es .length
For each Zeile as String in Zeilen
if Zeile <> "" then
Dim Link = Split(Zeile,";")(0)
Dim Dateiname = Split(Zeile,";")(1)
My.Computer.network.downloadFile(Link,Dateiname)
Progressbar1.Value += 1
end if
next
Am wichtigsten bei dem Code ist die Split Funktion, die kann einen String bei einem bestimmten Zeichen trennen. Wir verwenden sie einmal, um die einzelnen Zeilen der Textdatei zu trennen und dann nochmal, um aus der Zeile den Link und den Dateinamen auszulesen.
hoffe das ist so alles richtig und ich konnte euch helfen.
02/14/2011 01:05 Diego²#4
Du bist der Beste!!!

Danke!