Visual Basic 2008 Patcher erstellen (Größe prüfen)

  • VB.NET

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

    Visual Basic 2008 Patcher erstellen (Größe prüfen)

    Hallo Liebe Community,

    ich bin neu hier und habe mal eine Frage ..vielleicht kann mir jemand helfen. Unzwar habe ich frisch mit Visual Basic 2008 angefangen weil ich einen Patcher bauen möchte.

    Der Files von einem Server runterlädt aber nur wenn diese sich verändert haben.

    Achja die Files hole ich mir alle manuell von der patchlist.txt die ich erstellt habe..Geht das nicht auch anders? Das er die z.B. automatisch runterläd wenn sie in einem ordner auffen server sind (natürlich nur wenn Files davon anders sind?

    folgenden Code habe ich bereits:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Button1.Enabled = False
    5. Button1.Text = "Bitte warten..."
    6. TextBox1.Text = "Patch gestartet"
    7. ProgressBar1.Value = "1"
    8. Timer1.Start()
    9. End Sub
    10. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    11. ProgressBar1.Value = "2"
    12. TextBox1.Text = "Patchlist wird ausgelesen"
    13. If My.Computer.FileSystem.FileExists("patchlist.txt") Then
    14. My.Computer.FileSystem.DeleteFile("patchlist.txt")
    15. TextBox1.Text = "Patchlist am abarbeiten!"
    16. End If
    17. My.Computer.Network.DownloadFile("http://****.de/Patchserver/patchlist.txt", "patchlist.txt")
    18. ProgressBar1.Value = "10"
    19. Timer1.Stop()
    20. Timer2.Start()
    21. End Sub
    22. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    23. Button2.Enabled = False
    24. End Sub
    25. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    26. Dim lines() As String = IO.File.ReadAllLines("patchlist.txt")
    27. For Each line As String In lines
    28. Dim values() As String = line.Split(";")
    29. TextBox1.Text = "Einzelne Files werden verglichen"
    30. Next
    31. ProgressBar1.Value = "35"
    32. '1.
    33. If My.Computer.FileSystem.FileExists(lines(1)) Then
    34. My.Computer.FileSystem.DeleteFile(lines(1))
    35. End If
    36. My.Computer.Network.DownloadFile(lines(0), lines(1))
    37. ProgressBar1.Value = "36"
    38. TextBox1.Text = "*******.dll download"
    39. '2.
    40. If My.Computer.FileSystem.FileExists(lines(3)) Then
    41. My.Computer.FileSystem.DeleteFile(lines(3))
    42. End If
    43. My.Computer.Network.DownloadFile(lines(2), lines(3))
    44. ProgressBar1.Value = "37"
    45. TextBox1.Text = "****** download"
    46. '3.
    47. If My.Computer.FileSystem.FileExists(lines(5)) Then
    48. My.Computer.FileSystem.DeleteFile(lines(5))
    49. End If
    50. My.Computer.Network.DownloadFile(lines(4), lines(5))
    51. ProgressBar1.Value = "40"
    52. TextBox1.Text = "******.txt download"
    53. '4.
    54. If My.Computer.FileSystem.FileExists(lines(7)) Then
    55. My.Computer.FileSystem.DeleteFile(lines(7))
    56. End If
    57. My.Computer.Network.DownloadFile(lines(6), lines(7))
    58. ProgressBar1.Value = "45"
    59. TextBox1.Text = "******.inf download"
    60. '5.
    61. If My.Computer.FileSystem.FileExists(lines(9)) Then
    62. My.Computer.FileSystem.DeleteFile(lines(9))
    63. End If
    64. My.Computer.Network.DownloadFile(lines(8), lines(9))
    65. ProgressBar1.Value = "50"
    66. TextBox1.Text = "******.exe download"
    67. '6.
    68. If My.Computer.FileSystem.FileExists(lines(11)) Then
    69. My.Computer.FileSystem.DeleteFile(lines(11))
    70. End If
    71. My.Computer.Network.DownloadFile(lines(10), lines(11))
    72. ProgressBar1.Value = "55"
    73. TextBox1.Text = "******.dll download"
    74. '7.
    75. If My.Computer.FileSystem.FileExists(lines(13)) Then
    76. My.Computer.FileSystem.DeleteFile(lines(13))
    77. End If
    78. My.Computer.Network.DownloadFile(lines(12), lines(13))
    79. ProgressBar1.Value = "60"
    80. TextBox1.Text = "******.txt download"
    81. '8.
    82. If My.Computer.FileSystem.FileExists(lines(15)) Then
    83. My.Computer.FileSystem.DeleteFile(lines(15))
    84. End If
    85. My.Computer.Network.DownloadFile(lines(14), lines(15))
    86. ProgressBar1.Value = "62"
    87. TextBox1.Text = "******.exe download"
    88. '9.
    89. If My.Computer.FileSystem.FileExists(lines(17)) Then
    90. My.Computer.FileSystem.DeleteFile(lines(17))
    91. End If
    92. My.Computer.Network.DownloadFile(lines(16), lines(17))
    93. ProgressBar1.Value = "65"
    94. TextBox1.Text = "******.dll download"
    95. '10.
    96. If My.Computer.FileSystem.FileExists(lines(19)) Then
    97. My.Computer.FileSystem.DeleteFile(lines(19))
    98. End If
    99. My.Computer.Network.DownloadFile(lines(18), lines(19))
    100. ProgressBar1.Value = "70"
    101. TextBox1.Text = "******.dll download"
    102. '11.
    103. If My.Computer.FileSystem.FileExists(lines(21)) Then
    104. My.Computer.FileSystem.DeleteFile(lines(21))
    105. End If
    106. My.Computer.Network.DownloadFile(lines(20), lines(21))
    107. ProgressBar1.Value = "75"
    108. TextBox1.Text = "******.dll download"
    109. '12.
    110. If My.Computer.FileSystem.FileExists(lines(23)) Then
    111. My.Computer.FileSystem.DeleteFile(lines(23))
    112. End If
    113. My.Computer.Network.DownloadFile(lines(22), lines(23))
    114. ProgressBar1.Value = "80"
    115. TextBox1.Text = "******.cfg download"
    116. '13.
    117. If My.Computer.FileSystem.FileExists(lines(25)) Then
    118. My.Computer.FileSystem.DeleteFile(lines(25))
    119. End If
    120. My.Computer.Network.DownloadFile(lines(24), lines(25))
    121. ProgressBar1.Value = "85"
    122. TextBox1.Text = "******.cfg download"
    123. '14.
    124. If My.Computer.FileSystem.FileExists(lines(27)) Then
    125. My.Computer.FileSystem.DeleteFile(lines(27))
    126. End If
    127. My.Computer.Network.DownloadFile(lines(26), lines(27))
    128. ProgressBar1.Value = "86"
    129. TextBox1.Text = "******.bin download"
    130. '15.
    131. If My.Computer.FileSystem.FileExists(lines(29)) Then
    132. My.Computer.FileSystem.DeleteFile(lines(29))
    133. End If
    134. My.Computer.Network.DownloadFile(lines(28), lines(29))
    135. ProgressBar1.Value = "87"
    136. TextBox1.Text = "******.cfg download"
    137. '16.
    138. If My.Computer.FileSystem.FileExists(lines(31)) Then
    139. My.Computer.FileSystem.DeleteFile(lines(31))
    140. End If
    141. My.Computer.Network.DownloadFile(lines(30), lines(31))
    142. ProgressBar1.Value = "88"
    143. TextBox1.Text = "******.dll download"
    144. '17.
    145. If My.Computer.FileSystem.FileExists(lines(33)) Then
    146. My.Computer.FileSystem.DeleteFile(lines(33))
    147. End If
    148. My.Computer.Network.DownloadFile(lines(32), lines(33))
    149. ProgressBar1.Value = "89"
    150. TextBox1.Text = "******.DLL download"
    151. '18.
    152. If My.Computer.FileSystem.FileExists(lines(35)) Then
    153. My.Computer.FileSystem.DeleteFile(lines(35))
    154. End If
    155. My.Computer.Network.DownloadFile(lines(34), lines(35))
    156. ProgressBar1.Value = "90"
    157. TextBox1.Text = "******.dll download"
    158. '19.
    159. If My.Computer.FileSystem.FileExists(lines(37)) Then
    160. My.Computer.FileSystem.DeleteFile(lines(37))
    161. End If
    162. My.Computer.Network.DownloadFile(lines(36), lines(37))
    163. ProgressBar1.Value = "91"
    164. TextBox1.Text = "******.DLL download"
    165. '20.
    166. If My.Computer.FileSystem.FileExists(lines(39)) Then
    167. My.Computer.FileSystem.DeleteFile(lines(39))
    168. End If
    169. My.Computer.Network.DownloadFile(lines(38), lines(39))
    170. ProgressBar1.Value = "92"
    171. TextBox1.Text = "******.mp download"
    172. '21.
    173. If My.Computer.FileSystem.FileExists(lines(41)) Then
    174. My.Computer.FileSystem.DeleteFile(lines(41))
    175. End If
    176. My.Computer.Network.DownloadFile(lines(40), lines(41))
    177. ProgressBar1.Value = "93"
    178. TextBox1.Text = "******.dll download"
    179. '22.
    180. If My.Computer.FileSystem.FileExists(lines(43)) Then
    181. My.Computer.FileSystem.DeleteFile(lines(43))
    182. End If
    183. My.Computer.Network.DownloadFile(lines(42), lines(43))
    184. ProgressBar1.Value = "94"
    185. TextBox1.Text = "******.dll download"
    186. '23.
    187. If My.Computer.FileSystem.FileExists(lines(45)) Then
    188. My.Computer.FileSystem.DeleteFile(lines(45))
    189. End If
    190. My.Computer.Network.DownloadFile(lines(44), lines(45))
    191. ProgressBar1.Value = "95"
    192. TextBox1.Text = "******.txt download"
    193. ProgressBar1.Value = "100"
    194. TextBox1.Text = "Alle Files verglichen. Client gepatcht"
    195. Timer2.Stop()
    196. End Sub
    197. End Class


    Damit lösche ich die locale datei wenn sie schon existiert und lade die neue runter. Das ding ist aber ich will die neuen ja nur runterladen wenn die anders sind (z.B. ne txt wo bei mir auffen pc lol drin steht und auffen server rofl soll natürlich dann gedownloadet werden). Kann man das irgendwie an der Filegröße ausmachen oder muss man checksummen vergleichen (hab ich irgendwo gelesen).

    Also quasi iwi so:
    if (Filesize(server)== $Filesize(client)){

    echo "Daten sind aktuell";
    }else{
    echo "Daten werden gedownloadet";
    .
    .
    .
    Downloadbefehl etc
    .
    .

    }

    sry bin ein Php Mensch ^^..

    patchlist.txt sieht ungefähr so aus

    Quellcode

    1. http://*******.de/Patchserver/********.dll
    2. ********.dll
    3. http://*******.de/Patchserver/********.dll
    4. ********.dll


    Über jede Hilfe freue ich mich Vielen Dank im vorraus :)

    Edit by der_Kurt:
    * Expander eingefügt *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Hallo,

    Also so viel ich weiss lässt sich die Grösse einer Datei ermitteln, eventuell kannst du auch irgendwie auf das Bearbeitungsdatum zugreifen und dass dann vergleichen? Vielleicht hilft dir das irgendwie indirekt weiter:
    [VB 2008] Multidownloader mit Progressbar


    Dein Code ist übrigens ziemlich sch...;
    Du hast mehrfach den fast gleichen Code drin (Progressbar ändern, Datei löschen, Datei herunterladen und wieder von vorne).
    Schau dir mal "Schleifen" an, damit würde es wesentlich einfacher funktionieren

    Gruss
    sandiro