Warum findet dieser Code die Datei nicht?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Warum findet dieser Code die Datei nicht?

    Hey, ich bin neu hier.

    Ich mache momentan einen eigenen Launcher.

    Darin sind ein paar Programme eingetragen.

    Man kann für alle einen eigenen Pfad machen.

    Ich habe nun den richtigen Pfad eingegeben und die Datei hat den korrekten Namen.

    Trotzdem kommt die Messagebox welche sagt das die Datei nicht existiert.

    VB.NET-Quellcode

    1. Private Sub PictureBox7_Click(sender As Object, e As EventArgs) Handles PictureBox7.Click
    2. Try
    3. If My.Computer.FileSystem.DirectoryExists(My.Settings.Discord) Then
    4. If My.Computer.FileSystem.FileExists(My.Settings.Discord & "\Update.exe") Then
    5. Process.Start(My.Settings.Discord & "Update.exe")
    6. Else
    7. MessageBox.Show("Update.exe does not exist, want to check path? Current: " & My.Settings.Discord)
    8. Create.Show()
    9. Hide()
    10. End If
    11. Else
    12. If MsgBox("Path for Discord does not exist. Want to create a new one? Current: " & My.Settings.Discord, MsgBoxStyle.YesNo, MsgBoxResult.Yes) Then
    13. My.Settings.CurrentApp = "Discord"
    14. Create.Show()
    15. Hide()
    16. End If
    17. End If
    18. Catch ex As Exception
    19. MessageBox.Show("There was an error opening Discord! Error: " & ex.ToString)
    20. End Try
    21. End Sub


    Fehler ist als Bild angehängt.

    * Thema verschoben * ~NoFear23m
    Bilder
    • Screenshot_1.png

      11,21 kB, 399×261, 86 mal angesehen

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

    Hallo und Willkommen im Forum

    Das Thema habe ich verschoben. Wenn du Zeit hast: [Allgemein] VB.NET, VB6, VBA, VBS — Mit welcher Sprache programmiere ich eigentlich?

    Zunächst mach mal den Try/Catch Block raus. Der hindert dich nur daran der richtigen Fehler zu finden. Wenn Visual Studio in den Fehler reinläuft siehst du auch genau was nicht stimmt.

    Und wichtig. Option Stict On und weitere Dinge wie das vermeiden des My Namespaces: Visual Studio - Empfohlene Einstellungen

    Gut.
    Vergleiche mal Zeile 4 und 5 von deinem Code. Fällt dir etwas auf? Du prüfst zwar brav ob eine Datei existiert, willst aber dann einen anderen Pfad öffnen (der nicht existiert)
    Deshalb ist es immer gut mit Variablen zu arbeiten, denn kann das nicht passieren.

    VB.NET-Quellcode

    1. Dim discordExecutablePath As String = My.Settings.Discord & "\Update.exe"
    2. If My.Computer.FileSystem.DirectoryExists(My.Settings.Discord) Then
    3. If My.Computer.FileSystem.FileExists(discordExecutablePath) Then
    4. Process.Start(discordExecutablePath)
    5. ...
    6. ...



    Ich lege dir ans Herz meine Links durchzuarbeiten, das spart dir später viel ärger. Und dann überarbeite doch deine Methode nochmals.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @IamViperx1 Ebenfalls Willkommen im Forum. :thumbup:
    Geh mal davon aus, dass die Datei nicht da ist, wo er sie sucht.
    Wahrscheinlich ist der Inhalt von My.Settings.Discord falsch.
    Entweder Du setzt einen Haltepunkt auf die Zeile und siehst Dir den Inhalt der Variable an, das nennt man Debuggen: Debuggen, Fehler finden und beseitigen
    oder Du machst ne MessageBox und gibst den Pfad aus.
    Dann siehst Du sofort, was falsch ist.
    Und
    schmeiß den ranz alten VisualBAsic-Namespace raus: Visual Studio - Empfohlene Einstellungen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Wahrscheinlich ist der Inhalt von My.Settings.Discord falsch.

    Den hat er ja gepüft. Nur hat er beim Process.Start etwas vergessen. Copy&Paste-Fehler? ;)

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m Wenn der Pfad nur in einer TextBox, nicht aber in den Settings steht, isses halt falsch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich sehe hier keine TextBox? So wie ich das sehe fehlt einfach das \ von "Update.exe" in Zeile #5.
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m Jou. Genau das wollte ich ihm nicht vorsagen. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!