Patcher wie am besten realisieren?

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von joniator11.

    Patcher wie am besten realisieren?

    Hallo Leute,

    habe mit einem Patcher angefangen, bin noch sehr nooblike in vb aber einiges krieg ich hin.

    Jetzt habe ich Oberfläche alles fertig und stehe vor der Frage wie ich am besten patche.

    Ich habe auf dem ftp mehrere datein und auch datein in unterordner dort. Natürlich sollen nicht jedesmal alles gepatcht werden^^. Das wäre ja dann sinnlos für einen patcher :D

    Habe als erstes mal eine version.php aufn ftp geladen die ich abfrage und mit einer version.txt vergleiche.
    Wenn die auffen Server höher ist soll er patchen. Den Vorgang kann ich schon einleiten.

    Nun wie ich weiterverfahre ist die Frage, vielleicht in ein xml File reinschreiben was alles neu ist (also was er nur patchen soll) und das dann irgendwie verarbeiten aber dazu fehlt mir die Erfahrung.

    Hatte vor längerer zeit mal sowas hier zusammgecodet aber es hilft mir auch irgendwie net..
    Damals hab ichs anhand des zeiches % in einer patchlist.txt gesplittet und verarbeitet
    :

    VB.NET-Quellcode

    1. 'patchlist abarbeiten
    2. Dim list As String = IO.File.ReadAllText(appPath + "\patchlist.txt")
    3. Dim ListSTR() As String = list.Split("%")
    4. 'checken ob alte datein vorhanden, wenn ja löschen
    5. Dim i As Integer = 0
    6. Dim p As Integer = 0
    7. Try
    8. While i <= ListSTR(0)
    9. i += 1
    10. p += 2
    11. TextBox1.Text = ListSTR(i)
    12. If My.Computer.FileSystem.FileExists(appPath + "\" + ListSTR(i)) = True Then
    13. My.Computer.FileSystem.DeleteFile(appPath + "\" + ListSTR(i))
    14. TextBox1.Text = "Löscht: " + ListSTR(i)
    15. ProgressBar1.Value = p
    16. End If
    17. End While
    18. Catch ex As Exception



    VB.NET-Quellcode

    1. Dim appPath As String = Path.GetDirectoryName(Application.ExecutablePath)
    2. Dim c As Integer = 0
    3. Dim list As String = IO.File.ReadAllText(appPath + "\patchlist.txt")
    4. Dim ListSTR2() As String = list.Split("%")
    5. Dim p As Integer = 0
    6. Try
    7. 'Erste while schleife für nicht ordner sachen
    8. While c < ListSTR2(0)
    9. c += 1
    10. p += 2
    11. 'My.Computer.Network.DownloadFile("http://www.website.eu/" + ListSTR2(c), appPath + "\" + ListSTR2(c), FileIO.UIOption.AllDialogs, _
    12. 'FileIO.UICancelOption.DoNothing)
    13. End While
    14. 'Zweite while schleife für misc Ordner sachen
    15. Dim miscpathAs String = appPath + "\" + "misc"
    16. Dim list2 As String = IO.File.ReadAllText(appPath + "\misclist.txt")
    17. Dim ListSTR3() As String = list2.Split("%")
    18. Dim d As Integer = 0
    19. 'misc ordner erstellen wenn noch nicht existiert (check)
    20. 'If My.Computer.FileSystem.DirectoryExists(miscpath) Then
    21. 'Else
    22. ' My.Computer.FileSystem.CreateDirectory(miscpath)
    23. 'End If
    24. While d <= ListSTR3(0)
    25. d += 1
    26. MsgBox("http://www.website.eu/" + ListSTR3(d), miscpath+ "\" + ListSTR3(d))
    27. My.Computer.FileSystem.DeleteFile(miscpath+ "\" + ListSTR3(d))
    28. My.Computer.Network.DownloadFile("http://www.website.eu/" + ListSTR3(d), miscpath+ "\" + ListSTR3(d), FileIO.UIOption.AllDialogs, _
    29. FileIO.UICancelOption.DoNothing)
    30. End While



    Weiß auch grad net mehr was damals bei dem code nicht funktioniert hat. Glaub es war zu nervig jeden Ordner nochmal reinzuschreiben als while..

    Hat einer ne Idee wie man sone patcher am besten macht?

    Danke im vorraus =)
    zuerst brauchste ftp-server,dann machste ne txt rein mit z.p: 5.0
    dan machste downloadstring un verweist sie auf eine variable z.b: VER
    DAN

    VB.NET-Quellcode

    1. if a > "4.0" then verlink=client.downloadstring("www.meinserver.de/neueste ver.txt")
    in neueste ver.txt tuste immer den link der neusesten ver.
    dan

    VB.NET-Quellcode

    1. client.downloadfileasyc(verlink,"die datei")
    2. Msgbox("gepatcht")
    3. else
    4. end if

    das find ich kürzer un besser^^