Ordner im ordner öffnen

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Julian W..

    Ordner im ordner öffnen

    Hallo habe ein Problem.
    Ich habe Ordner wie z.B. 2013 2014 2015 (Die Aufträge sind nach den jahren sortiert)
    In den Ordnern befinden sich Weitere viele Ordner (Die Ordner sind nach Auftragsnummern benannt) z.B. 31200148888
    Ich will jetzt z.B. eine Auftragsnummer suchen in einer TextBox und dann soll er mir den Ordner öffnen. Wie geht das?
    So geht es iwie nicht:
    Process.Start("C:\2014\" & TextBox1.Text)

    Danke schonmal
    MfG
    @Julian W. Willkommen im Forum. :thumbup:
    Liste einfach alle Dateien im gewünschten Pfad auf und mach dann damit, was erforderlich ist. Form mit Button und ListBox:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim fi = New IO.DirectoryInfo("c:\Temp").GetFiles("*.*", IO.SearchOption.AllDirectories)
    3. Me.ListBox1.Items.AddRange(fi)
    4. 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!
    Hey Danke :))
    Ich glaube du versteht mich falsch :/
    Habe ne TextBox und nen Such Button.
    Es exestieren die Ordner 2009,2010,2011 usw..(Jahre halt). In den Jahresordnern sind auch Ordner drin, die nach Auftragsnummern benannt sind z.B.1458132019
    Jetzt will ich z.B. in der TextBox 1458132019 eingeben und er soll mir den Ordner öffnen.
    Wie mache ich das, das der in allen Ordnern sucht(2014,2015 usw...) und das der den Ordner dann öffnet mit Process.Start
    Danke gruß :)

    Julian W. schrieb:

    Ich glaube du versteht mich falsch
    Sorry, ich denke nicht.
    Wenn Du möchtest, das wir Deine Hausaufgaben machen, geh auf den Marktplatz.
    Wenn Du Dein Problem lösen und dabei noch was lernen möchtest, sind wir hier richtig.
    Ändere mal das Snippet so ab (GetFiles() => GetDirectories()):

    VB.NET-Quellcode

    1. Dim di = New IO.DirectoryInfo("c:\Temp").GetDirectories("1458132019", IO.SearchOption.AllDirectories)

    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!
    Ne das war ja nicht so gemeint :D Alles ok, ich meine du hast mich falsch verstanden glaub ich wie ich das haben möchte.. :P
    Habe das jetzt so:
    Dim di = New IO.DirectoryInfo("c:\Aufträge").GetDirectories(TextBox1.Text, IO.SearchOption.AllDirectories)

    Aber er öffnet es nicht, wenn ich auf suchen gehe..
    Du hast auch alle Ordner momentan mit dem genannten Code nur in einem Array gespeichert. Diese kannst du jetzt in bspw eine Listview eintragen.

    (Stelle sie dazu auf Detail und erzeuge eine Spalte die du Ordner nennst)
    danach kannst du mit einer einfach For-Each schleife einen Ordner nach dem anderen vom Array in die Listview schreiben um ersmal zu schauen ob dein ordner gefunden wird.
    Wenn er danach vorhanden ist, hinterleg deinen Pfad zum Ordner 2014 am besten in eine String Variable.

    Danach solltest du das ganze öffnen können, falls vorhanden :)
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:
    :/ weiß nicht genau wie du das meinst.
    Kannst du mir vielleicht ne kleine Hilfestellung geben?
    Habe erst seid gestern mit VB angefangen.
    Bin noch nicht gerade der Könner.
    Das ist nämlich das einzige was ich brauch, dann kann ich das Thema nämlich abhaken :D
    Wäre echt super. MfG

    ://Edit: So geht es auch nicht:
    Process.Start("O:\Auftrag\2014\*.*", Form2.TextBox1.Text)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Julian W.“ ()

    Also, du ziehst eine Listview auf deine Form.

    Oben Rechts ist dann son kleiner Pfeil. Wenn du den anklickst kannst du da bei einer der Comboboxen auf Detail stellen..
    Danach kannst du genau da auch auf Spalten hinzufügen gehen (oder wie auch immer der link da heißt hab vb ned offen :P).

    Dort fügst du eine Spalte hinzu, welche du rechts in Ordner umbenennen kannst.
    Soweit so gut.

    Anschließend gehst du in den Code von deinem Button und fügst den Code von Rod ein und passt ihn an.
    Nachdem du die Liste der gefundenen Ordner in dem von Rod deklarierten Array gespeichert hast (in di) kannst du nun alle gefunden Ordner in die Listview eintragen.

    VB.NET-Quellcode

    1. Listview1.clear() ''löscht alle Einträge, falls vorhanden
    2. 'danach die Schleife
    3. For each folder in di
    4. Listview1.items.add(folder)
    5. Next
    6. Wenn die liste leer bleibt, gibts den ordner auch nicht ;)
    7. Danach halt aufrufen wenn er da ist :)
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

    Julian W. schrieb:

    So geht es auch nicht:
    Aber so:

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim fi = New IO.DirectoryInfo("c:\Temp").GetDirectories("abc", IO.SearchOption.AllDirectories)
    5. Me.ListBox1.Items.AddRange(fi)
    6. End Sub
    7. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    8. Dim di = CType(Me.ListBox1.SelectedItem, IO.DirectoryInfo)
    9. Process.Start(di.FullName)
    10. End Sub
    11. End Class
    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!
    du brauchst eine listbox und ein textbox.den code packkst du in dien button click event.das wars

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. If System.IO.Directory.Exists("c:\auftrage\" + TextBox1.Text) Then
    3. Dim fi = New IO.DirectoryInfo("c:\auftrage\" + TextBox1.Text).GetFiles("*.*", IO.SearchOption.AllDirectories)
    4. ListBox1.Items.Clear()
    5. Me.ListBox1.Items.AddRange(fi)
    6. Else
    7. MessageBox.Show("Ordner existiert nicht")
    8. End If
    9. End Sub

    Hier könnte meine Signatur stehen.
    Habs jetzt so:

    VB.NET-Quellcode

    1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    2. Dim di = New IO.DirectoryInfo("O:\Auftrag\").GetDirectories(TextBox1.Text, IO.SearchOption.AllDirectories)
    3. ListView1.Clear()
    4. For Each folder In di
    5. ListView1.Items.Add(Folder)
    6. Next
    7. End Sub


    Aber er unterstreicht mir in Blau das: ListView1.Items.Add(Folder)

    //edit: danke erstmal für die vielen hilfen.
    Habe das auch eingefügt:

    VB.NET-Quellcode

    1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    2. If System.IO.Directory.Exists("O:\Auftrag\" + TextBox1.Text) Then
    3. Dim fi = New IO.DirectoryInfo("O:\Auftrag\" + TextBox1.Text).GetFiles("*.*", IO.SearchOption.AllDirectories)
    4. ListBox1.Items.Clear()
    5. Me.ListBox1.Items.AddRange(fi)
    6. Else
    7. MessageBox.Show("Ordner existiert nicht")
    8. End If
    9. End Sub

    wenn ich auf den Button klicke hängt sich alles auf.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Julian W.“ ()

    Julian W. schrieb:

    Habs jetzt so:

    RodFromGermany schrieb:

    Aber so:
    Nimm meinen Code.
    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!
    @mox Hab ich doch, hängt sich auf:

    VB.NET-Quellcode

    1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    2. If System.IO.Directory.Exists("O:\Auftrag\" + TextBox1.Text) Then
    3. Dim fi = New IO.DirectoryInfo("O:\Auftrag\" + TextBox1.Text).GetFiles("*.*", IO.SearchOption.AllDirectories)
    4. ListBox1.Items.Clear()
    5. Me.ListBox1.Items.AddRange(fi)
    6. Else
    7. MessageBox.Show("Ordner existiert nicht")
    8. End If
    9. End Sub


    und @Rod, deiner geht auch nicht, hängt sich auch auf:

    VB.NET-Quellcode

    1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    2. Dim fi = New IO.DirectoryInfo("O:\Auftrag\").GetDirectories(TextBox1.Text, IO.SearchOption.AllDirectories)
    3. Me.ListBox1.Items.AddRange(fi)
    4. Dim di = CType(Me.ListBox1.SelectedItem, IO.DirectoryInfo)
    5. Process.Start(di.FullName)
    6. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Julian W.“ ()

    Julian W. schrieb:

    deiner geht auch nicht

    mox schrieb:

    ist doch nicht schwer nen quellcode zu kopieren ich bitte dich..
    C&P, ich hab das getestet. Bei mit brauchst Du 2 Button. Wenn das alles läuft UND wenn Du das verstanden hast, können wir es vereinfachen.
    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!

    VB.NET-Quellcode

    1. Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    2. If System.IO.Directory.Exists("O:\Auftrag\" + TextBox1.Text) Then
    3. Dim fi = New IO.DirectoryInfo("O:\Auftrag\" + TextBox1.Text).GetFiles("*.*", IO.SearchOption.AllDirectories)
    4. ListBox1.Items.Clear()
    5. Me.ListBox1.Items.AddRange(fi)
    6. Else
    7. MessageBox.Show("Ordner existiert nicht")
    8. End If
    9. End Sub

    geht nicht, wenn ich auf Suchen klicke, passiert Garnichts.., das ist dein Code.
    bei mir gehts so ohne probleme ;)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim path As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\test\" 'Der pfad zum ordner wo sich die Ordner 2013 2014 usw drin befinden bei mir aufm desktop im ordner test
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim yearfolders() As String = IO.Directory.GetDirectories(path)
    5. ComboBox1.Items.Clear()
    6. For Each Yearf In yearfolders
    7. ComboBox1.Items.Add(Replace(Yearf, path, "")) 'da der komplette pfad in Yearf gespeichert wird,löschen wir den kompletten anfang damit nurnoch das Jahr drin steht
    8. Next
    9. End Sub
    10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    11. If IO.Directory.Exists(path & selected_year & "\" & TextBox1.Text) Then
    12. ListView1.Items.Clear()
    13. ListView1.Items.Add(TextBox1.Text)
    14. Else
    15. MsgBox(path & selected_year & "\" & TextBox1.Text)
    16. End If
    17. End Sub
    18. Dim selected_year As String
    19. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    20. selected_year = ComboBox1.SelectedItem.ToString
    21. End Sub
    22. Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
    23. If ListView1.SelectedItems.Count > 0 Then
    24. Process.Start(path & selected_year & "\" & TextBox1.Text)
    25. End If
    26. End Sub
    27. End Class
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

    Julian W. schrieb:

    Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click


    Was nun Button 4 oder Button1 ? Hast du den Code vielleicht an den Falschen Button gehängt?

    Daher sollten Steuerelemente immer benannt werden
    btnSuchen ist viel Aussagekräftiger
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Julian W. schrieb:

    passiert Garnichts
    Mach genau dieses hier.
    Form mit 2 Button und ListBox.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim fi = New IO.DirectoryInfo("c:\Temp").GetDirectories("*.*", IO.SearchOption.AllDirectories)
    4. Me.ListBox1.Items.AddRange(fi)
    5. End Sub
    6. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    7. If Me.ListBox1.SelectedItem Is Nothing Then
    8. Return
    9. End If
    10. Dim di = CType(Me.ListBox1.SelectedItem, IO.DirectoryInfo)
    11. Process.Start(di.FullName)
    12. End Sub
    13. End Class
    Bilder
    • Ordner.jpg

      73,09 kB, 831×585, 89 mal angesehen
    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!