Hallo,
Ich habe son kleines Problem ich möchte einen Updater für mein Spiel machen. Ja der Download funktioniert mein Problem ist das enpacken des ganzen.Die ordner werden erstellt. Aber wenn der Entpackbefeh aufgerufen wird kommt ein fehler !
Ich verzweifel schon, weil das wahrscheinlich nur pillepalle ist. Hier mal ein teil des Codes :
Spoiler anzeigen
vllt findet ja jemand den fehler
MfG Marcel
EDIT: noch mehr code
Ich habe son kleines Problem ich möchte einen Updater für mein Spiel machen. Ja der Download funktioniert mein Problem ist das enpacken des ganzen.Die ordner werden erstellt. Aber wenn der Entpackbefeh aufgerufen wird kommt ein fehler !
Ich verzweifel schon, weil das wahrscheinlich nur pillepalle ist. Hier mal ein teil des Codes :
VB.NET-Quellcode
- Imports Microsoft.VisualBasic.ApplicationServices
- Imports System
- Imports System.IO
- Public Class GameUpdater
- '----------------------Nur Pfade und einmal dateinamen angeben---------------------------------------------------------------------
- Dim spieldaten As String = "http://rbe-minecraft.kilu.de/w.zip" ' FTP-Pfad zu dem zip archiv der spieldaten
- Dim tmp As String = "C:\Users\Documents\tmp" ' temoräres archiv
- Dim game_pfad As String = "C:\UnderTrees\uT\" 'finaler pfad wo die spieldatein hinsollen
- Dim progress_zip As Integer ' progreebar value => schleife 0-100-0-...
- Dim filename As String = "w.zip" ' name des zip archivs
- Dim exename As String = "w.exe" ' name der finalen game exe
- Dim username As String ' benutzername (nicht verwendet)
- Dim scut_pfad As String = "C:\Users\Public\Desktop\" + filename ' pfad für den shortcut
- Dim game_exe_pfad As String = game_pfad & exename 'pfad zum starten der exe
- '-------------------------------------------------------------
- Private Sub GameUpdater_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- System.IO.Directory.CreateDirectory(tmp) 'erstelle neuen ordner UnderTrees
- System.IO.Directory.CreateDirectory(game_pfad) 'erstelle neuen ordner Game wo der launcher ist
- start() ' download starten
- End Sub
- Dim wc As System.Net.WebClient
- Private Sub start() 'Download starten
- wc = New System.Net.WebClient()
- AddHandler wc.DownloadProgressChanged, AddressOf OnDownloadProgressChanged
- AddHandler wc.DownloadFileCompleted, AddressOf OnFileDownloadCompleted
- wc.DownloadFileAsync(New Uri(spieldaten), tmp + filename)
- End Sub
- Private Sub OnDownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
- Dim totalSize As String = e.TotalBytesToReceive
- Dim downloadedBytes As String = e.BytesReceived
- Dim percentage As Integer = e.ProgressPercentage
- Label4.Text = downloadedBytes + " / " + totalSize 'passendes label beschriften
- ProgressBar1.Maximum = 100 'In der Progressbar den Fortschriff anzeigen lassen in %
- ProgressBar1.Value = percentage
- End Sub
- Private Sub OnFileDownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
- If e.Cancelled Then
- 'Cancelled
- ElseIf Not e.Error Is Nothing Then
- 'Beim Download ist ein Fehler aufgetreten
- MsgBox("Download konnte nicht abgeschlossen werden", MsgBoxStyle.Critical, "INFORMATION")
- My.Settings.dl = False
- Me.Close()
- Else
- entpacken()
- 'Download erfolgreich dann entpacken
- End If
- End Sub
- Private Sub Unziped()
- MessageBox.Show("Entpacken erfolgreich")
- Timer1.Stop()
- final_ready()
- End Sub
- Public Sub entpacken() ' geladenen archiv entpacken
- Timer1.Start()
- If Directory.Exists(game_pfad) = False Then
- Directory.CreateDirectory(game_pfad)
- End If
- Try
- Dim file As String = tmp + filename
- Dim cu As New ClassUnzip(file, Path.Combine(Path.GetDirectoryName(file), game_pfad))
- AddHandler cu.UnzipFinishd, AddressOf Unziped
- cu.UnzipNow()
- Catch ex As Exception
- Timer1.Stop()
- MsgBox("ERROR")
- End Try
- End Sub
- Public Sub final_ready()
- scut()
- My.Settings.game_pf = game_exe_pfad
- My.Settings.dl = True ' = true d.h. spiel muss nicht mehr gedownloadet werden
- Form1.start_game() ' greife auf funktion start game zu
- Me.Close() 'Downloader + Main-form schliessen
- Form1.Close()
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- ProgressBar2.Maximum = 100 ' maximalen progressbar wert setzten
- progress_zip = progress_zip + 1 'counter +1
- ProgressBar2.Value = progress_zip
- If progress_zip = 100 Then ' bis 100 zählen dann auf 0 setzten
- progress_zip = 0
- End If
- End Sub
- Public Sub Filemanager() ' Zip löschen,....
- IO.File.Delete(tmp + filename) 'tip löschen
- ' IO.Directory.Delete(tmp) 'entpckte datein löschen
- End Sub
vllt findet ja jemand den fehler
MfG Marcel
EDIT: noch mehr code