Datei Auswahl Fenster ?

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von JuJu.

    Datei Auswahl Fenster ?

    Servus ;)

    Ich weiß nicht genau, ob man dieses Fenster so nennt, aber ich suche einen Code für ein AuswahlFenster für eine Datei.
    Ich habe ein programm, dass öffnet eine Datei, wenn man auf den Button klickt! Doch vorher überprüft er, ob die Datei da ist, wenn nicht soll man die Datei, wie in so einer öffnen Box, auswählen bzw. suchen können.

    Mein Code bisher:

    VB.NET-Quellcode

    1. Private Sub cmdChangeIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChangeIP.Click
    2. If File.Exists("D:\IP Changer\IP Changer 1.4.jar") Then
    3. Process.Start("D:\IP Changer\IP Changer 1.4.jar")
    4. Else
    5. MsgBox("Die angeforderte Datei wurde nicht gefunden!", , "Datei nicht vorhanden!")
    6. 'HIER SOLL DER USER DIE DATEI AUSWÄHLEN BZW. SUCHE KÖNNEN :)
    7. End If
    8. End Sub


    Ich hab schon die ganze Zeit gesucht, aber nichts hilfreiches gefunden :(

    Grüße
    Okay^^

    Soweit bin ich nun:

    VB.NET-Quellcode

    1. Private Sub cmdChangeIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChangeIP.Click
    2. If File.Exists("D:\IP Changer\IP Changer 1.4.jar") Then
    3. Process.Start("D:\IP Changer\IP Changer 1.4.jar")
    4. Else
    5. Dim openFileDialog1 As New OpenFileDialog()
    6. MsgBox("Die angeforderte Datei wurde nicht gefunden!", , "Datei nicht vorhanden!")
    7. openFileDialog1.InitialDirectory = "c:\"
    8. openFileDialog1.Filter = "Java Dateien (*.jar)| *.jar"
    9. openFileDialog1.ShowDialog()
    10. End If
    11. End Sub


    Nun muss er noch die ausgwählten Datei mit dem Pfad übernehmen...

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

    Ich weiß habs auch schon :D

    Nun muss ich es noch hinkriegen, dass er eine Variable für den Pfad nimmt..

    Mein veruch:

    VB.NET-Quellcode

    1. Private Sub cmdChangeIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChangeIP.Click
    2. Dim Pfad As VariantType
    3. Pfad = "D:\IP Changer\IP Changer 1.4.jahr"
    4. If File.Exists(Pfad) Then
    5. Process.Start(Pfad)
    6. Else
    7. Dim openFileDialog1 As New OpenFileDialog()
    8. MsgBox("Die angeforderte Datei wurde nicht gefunden!", , "Datei nicht vorhanden!")
    9. openFileDialog1.InitialDirectory = "c:\"
    10. openFileDialog1.Filter = "Java Dateien (*.jar)| *.jar"
    11. openFileDialog1.ShowDialog()
    12. If openFileDialog1.ShowDialog = DialogResult.OK Then
    13. openFileDialog1.FileName = Pfad
    14. End If
    15. End If
    16. End Sub


    Geht aber nicht. Wer kann mir da helfen? Bzw. wo sind die Fehler :D?
    Vergiss bitte "VariantType" und wähle in Deinen Projekten (Plural!)
    Option Explicit On
    Option Strict On
    aus.
    Der Rest war doch schon ganz gut.
    Ein wenig umsortiert und den doppelten Aufruf des Filedialogs raus und Deklaration mit Using (bitte selbst nachsehen).

    VB.NET-Quellcode

    1. Dim Pfad As String
    2. ' jahr -> jar
    3. Pfad = "D:\IP Changer\IP Changer 1.4.jar"
    4. If Not IO.File.Exists(Pfad) Then
    5. 'MsgBox("Die angeforderte Datei wurde nicht gefunden!", , "Datei nicht vorhanden!")
    6. Using openFileDialog1 As New OpenFileDialog()
    7. openFileDialog1.InitialDirectory = "c:\"
    8. openFileDialog1.Filter = "Java Dateien (*.jar)|*.jar|alle Dateien (*.*)|*.*"
    9. If openFileDialog1.ShowDialog() = DialogResult.OK Then
    10. Pfad = openFileDialog1.FileName
    11. End If
    12. End Using
    13. End If
    14. Process.Start(Pfad)
    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!
    Hey Danke erstmal :)
    Ich habs nun mal übernommen nur nun falls der das die Datei nicht da ist, die er starten soll, öffnet er den Dialog, man wählt es aus, klickt auf ok und er startet das programm direkt (kann man das unterbinden?Wenn nicht auch nicht schlimm).
    Dazu kommt leider noch, dass er dannach den Pfad nicht ändert sondern wieder vom alten ausgeht und dann wieder abfragt wo die Datei ist...
    Dann musst Du halt den Pfad / die Datei mit Pfad abspeichern.
    Z.B.
    My.Ressources...
    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!
    Sorry, mein Fehler :huh:
    Nicht Ressourcen sondern Settings
    1. Setting anlegen: Projekt->Eigenschaften->Einstellungen
    --> Setting in MyPath (oder so) umbenennen
    2.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim path As String
    3. Using dlg As New OpenFileDialog()
    4. My.Settings.Reload()
    5. path = My.Settings.MyPath
    6. dlg.Multiselect = False
    7. dlg.InitialDirectory = path
    8. dlg.RestoreDirectory = True
    9. dlg.Filter = "Java Dateien (*.jar)|*.jar|alle Dateien (*.*)|*.*"
    10. If dlg.ShowDialog() = DialogResult.OK Then
    11. My.Settings.MyPath = New IO.FileInfo(dlg.FileName).Directory.FullName
    12. My.Settings.Save()
    13. path = dlg.FileName
    14. End If
    15. End Using
    16. End Sub
    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!
    Bringt leider trozdem nichts.
    Sobald ich nochmal auf den Button klicke, muss ich den Pfad neu auswählen :(

    VB.NET-Quellcode

    1. Private Sub cmdChangeIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdChangeIP.Click
    2. Dim path As String
    3. Using dlg As New OpenFileDialog()
    4. My.Settings.Reload()
    5. path = My.Settings.MyPath
    6. If Not IO.File.Exists(path) Then
    7. dlg.Multiselect = False
    8. dlg.InitialDirectory = path
    9. dlg.RestoreDirectory = True
    10. dlg.Filter = "Java Dateien (*.jar)|*.jar|alle Dateien (*.*)|*.*"
    11. If dlg.ShowDialog() = DialogResult.OK Then
    12. My.Settings.MyPath = New IO.FileInfo(dlg.FileName).Directory.FullName
    13. My.Settings.Save()
    14. path = dlg.FileName
    15. End If
    16. End If
    17. End Using
    18. '---------------------------
    19. Dim ExterneAnwendung As New System.Diagnostics.Process()
    20. ExterneAnwendung.StartInfo.FileName = path
    21. ExterneAnwendung.Start()
    22. If ExterneAnwendung.WaitForExit(10000) = True Then
    23. Process.Start("www.google.de")
    24. System.Windows.Forms.Cursor.Position = New Point(509, 380)
    25. Threading.Thread.Sleep(5000)
    26. SendKeys.Send(MouseButtons.Left)
    27. End If
    28. End Sub
    Kein Problem.
    Dann merken wir uns eben nicht nur den Pfad, sondern auch die zuletzt ausgewählte Datei. :D

    VB.NET-Quellcode

    1. If dlg.ShowDialog() = DialogResult.OK Then
    2. My.Settings.MyPath = dlg.FileName 'New IO.FileInfo(dlg.FileName).Directory.FullName
    3. My.Settings.Save()
    4. path = dlg.FileName
    5. Else
    6. Return
    7. End If

    Außerdem brechen wir dier Routine ab, wenn nichts ausgewählt wurde.
    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!