Patcher, will kein Savedialog, automatisches abspeichern !

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Patcher, will kein Savedialog, automatisches abspeichern !

    Hallo VB-Team,

    Ich habe eine Frage, ich habe mir ein Patcher erstellt, der Patcher downloadet das Update, abspeichern tuhe ich es allerdings mit einer Savefiledialog.
    Ich würde es aber gerne so einstellen, dass dierekt, sobald die Datei gedownloadet wird, sofort in den bestimmten Ordner darein gestellt wird.
    Denke schon ne ganze Weile nach, komme aber einfach nicht drauf, wie es klappen soll :(
    Habe mir eigentlich irgendwas mit dem Pfad gedacht, also
    Pfad= "C:\Desktop", aber das will nicht, sobald ich dann versuche zu downloaden, steht dann da direkt "Download abgeschlossen", obwohl ich nicht gedownloadet habe
    So habe ich es mit der Savefile gemacht...

    VB.NET-Quellcode

    1. SaveFileDialog1.ShowDialog()
    2. Pfad = SaveFileDialog1.FileName


    Hoffe um Hilfe :))

    Dieser Beitrag wurde bereits 16 mal editiert, zuletzt von „_VB-Anfänger-_-“ ()

    1. da solte mehr code sein z.b. zum downloaden
    2. wohin downloadest du das ding genau ?
    3. stell dir selber die frage ob man das wirklich bestimmen kann wo der patcher das hinlegt !?
    4. hoffe das ich on bin um dir weiter zu helfen
    Hey Joshka, ich geb dir mal den ganzen Code,

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. My.Computer.Network.DownloadFile("Version des Patch vom Server", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "/version.ini", "ID", "PW", False, 999999999, True)
    3. Dim MeineVersion As Integer = CInt(Me.Version.Text)
    4. Dim Serverversion As Integer = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "/version.ini")
    5. If Serverversion > MeineVersion Then
    6. GoTo ShowDialog
    7. End If
    8. ShowDialog:
    9. SaveFileDialog1.ShowDialog()
    10. If SaveFileDialog1.FileName = Nothing Then
    11. GoTo ShowDialog
    12. End If
    13. Pfad = SaveFileDialog1.FileName
    14. Try
    15. httpclient = New WebClient
    16. Dim URL As String = "Das update, dass gedownloadet werden soll"
    17. Application.DoEvents()
    18. httpclient.DownloadFileAsync(New Uri(URL), Pfad)
    19. Application.DoEvents()
    20. Catch ex As Exception
    21. MsgBox("Es ist folgender Fehler aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Es ist ein Fehler aufgetreten!")
    22. End
    23. End Try
    schau deine code genauer an:

    VB.NET-Quellcode

    1. ShowDialog:
    2. SaveFileDialog1.ShowDialog()
    3. If SaveFileDialog1.FileName = Nothing Then
    4. GoTo ShowDialog
    5. End If
    6. Pfad = SaveFileDialog1.FileName

    wie soll er weitere Anweisungen ausführen...
    PS: GoTo ist keine saubere programmierungs still.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SystemUnknow“ ()

    Nur mal als Erklärung, warum "ER" nicht speichert:

    Pfad = SaveFileDialog1.FileName

    Diese Zeile widerspricht sich schonmal selbst: Ein Dateiname ist ein Dateiname und kein Pfad. Ein Pfad ist der Ort, wo deine Datei liegt (liegen soll). Wenn du hier "C:\Desktop" angibst, interpretiert VB dies als ... Dateiname.

    VB.NET-Quellcode

    1. Dim pfad As String = "C:\Whatever" 'Der Pfad
    2. Dim dateiname As String = "dummy.txt" 'der Dateiname ohne Pfad
    3. Dim vollerdateiname As String = IO.Path.Combine(pfad, dateiname)
    Sry, aber neues Problem, habe meinen Code neu nacheditiert, habe jetzt das Problem, dass er nicht downloadet, einfach sofort "Der Download war erfolgreich" kommt..
    Tut mir Leid, aber ich bin mit meinen Latein einfach am Ende......

    Bitte hilft mir

    VB.NET-Quellcode

    1. My.Computer.Network.DownloadFile("Die VERSION des Seversi", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "/version.ini", "ID", "PW", False, 999999999, True)
    2. Dim MeineVersion As Integer = CInt(Me.Version.Text)
    3. Dim Serverversion As Integer = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "/version.ini")
    4. Dim dateiname As String = "baseproedition.exe"
    5. Dim vollerdateiname As String = IO.Path.Combine(Pfad, dateiname)
    6. If Serverversion > MeineVersion Then
    7. httpclient = New WebClient
    8. Dim URL As String = "Download des Updates"
    9. Application.DoEvents()
    10. httpclient.DownloadFileAsync(New Uri(URL), Pfad)
    11. Application.DoEvents()
    12. End If

    Dim Pfad As String ="C:\Desktop" habe ich in die Public Class Form1 eingefügt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „_VB-Anfänger-_-“ ()

    1. schau mal auf meinen namen -_-
    2. trotzdem verwendest du
    My.Computer.Network.DownloadFile
    warum ?

    EDIT:
    3. du nutzt auch
    My.Computer.FileSystem.ReadAllText
    nimm lieber io.file.readalltext

    EDIT2:
    4. Application.DoEvents()
    ist sinnlos schmeis es raus