Pfad von Datei wird nicht gespeichert

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Pfad von Datei wird nicht gespeichert

    Hallo,

    ich habe ein Problem mit dem Speichern einer Datei, welche geöffnet werden soll.
    Mein Code sieht aktuell wie folgt aus :

    VB.NET-Quellcode

    1. Option Explicit On
    2. Option Strict On
    3. Public Class Test
    4. Private Sub Test_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. End Sub
    6. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    7. Dim path As String
    8. Using dlg As New OpenFileDialog()
    9. My.Settings.Reload()
    10. path = My.Settings.Testpro
    11. If Not IO.File.Exists(path) Then
    12. dlg.Multiselect = False
    13. dlg.InitialDirectory = path
    14. dlg.RestoreDirectory = True
    15. dlg.Filter = "Exe Dateien (*.exe)|*.exe|alle Dateien (*.*)|*.*"
    16. If dlg.ShowDialog() = DialogResult.OK Then
    17. My.Settings.Testpro = dlg.FileName
    18. My.Settings.Save()
    19. path = dlg.FileName
    20. End If
    21. End If
    22. End Using
    23. Dim ExterneAnwendung As New System.Diagnostics.Process()
    24. ExterneAnwendung.StartInfo.FileName = path
    25. ExterneAnwendung.Start()
    26. End Sub
    27. End Class


    Ich habe in den Settings "Testpro" angelegt und als Wert habe ich den Pfad, wo normalerweise das Programm liegt, welches gestartet werden soll ""C:\Users\lalaland\Desktop\myprog\myprog.exe".

    Aktuell ist es so, dass bei jedem Betätigen des Buttons, die Dateiauswahl startet. Auch wenn ich dann noch einmal den Pfad und Datei auswähle, wird es dann einfach nicht gespeichert... Wenn ich auf abbrechen bei der Auswahl gehe, startet er dann sogar das Programm.

    Ich hoffe einer von euch findet meinen Denk-/Umsetzungs-Fehler ;)
    Zeile #13 + #22 kannst du wegmachen...
    Zeile #28 - #30 solltest in einen IF-Zweig verlagern...
    siehe Beispiel unten:

    VB.NET-Quellcode

    1. Public Sub loadMyFile()
    2. Using dlg As New OpenFileDialog
    3. dlg.Title = "Meine Datei öffnen..."
    4. dlg.InitialDirectory = If(My.Settings.MyFile = "", GetFolderPath(SpecialFolder.DesktopDirectory), My.Settings.MyFile)
    5. dlg.Filter = "Alle Dateien (*.*)|*.*"
    6. If dlg.ShowDialog() = DialogResult.OK Then
    7. My.Settings.MyFile = dlg.FileName()
    8. 'hier Datei ausführen
    9. End If
    10. End Using
    11. End Sub

    Nun sieht es wie folgt aus und gibt leider "GetFolderPath" + "SpecialFolder" als nicht deklariert aus.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim path As String
    3. path = My.Settings.Testpro
    4. Using dlg As New OpenFileDialog
    5. dlg.Title = "Meine Datei öffnen..."
    6. dlg.InitialDirectory = If(My.Settings.Testpro = "", GetFolderPath(SpecialFolder.DesktopDirectory), My.Settings.Testpro)
    7. dlg.Filter = "Alle Dateien (*.*)|*.*"





    Habe das Problem nun wie folgt gelöst :

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim path As String
    3. path = My.Settings.Testpro
    4. If File.Exists(path) Then
    5. Dim ExterneAnwendung As New System.Diagnostics.Process()
    6. ExterneAnwendung.StartInfo.FileName = path
    7. ExterneAnwendung.Start()
    8. Else
    9. Using dlg As New OpenFileDialog()
    10. dlg.Multiselect = False
    11. dlg.InitialDirectory = path
    12. dlg.RestoreDirectory = True
    13. dlg.Filter = "Exe Dateien (*.exe)|*.exe|alle Dateien (*.*)|*.*"
    14. If dlg.ShowDialog() = DialogResult.OK Then
    15. My.Settings.Testpro = dlg.FileName
    16. My.Settings.Save()
    17. path = dlg.FileName
    18. End If
    19. End Using
    20. MsgBox("info")
    21. End If
    22. End Sub

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