ordner angeben und in dem ordner und einen ordner tiefer alle *.txt dateien mit pfad auflisten

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    ordner angeben und in dem ordner und einen ordner tiefer alle *.txt dateien mit pfad auflisten

    hi,

    ich lasse mir mit

    VB.NET-Quellcode

    1. For Each sFile As String In My.Computer.FileSystem.GetFiles(pfad_zum_ordner, FileIO.SearchOption.SearchAllSubDirectories, "*.txt")
    2. Me.ListBox1.Items.Add(New IO.FileInfo(sFile))
    3. Next


    eine listbox füllen mit den pfaden zu einer bestimmten datei.

    mein problem ist nun aber das wenn ich die schleife mit

    c:\Windows\System32\

    füttere er in mehr als einen unterordner geht

    z.b. c:\Windows\System32\SPReview\ar-sa\

    ich will aber eine begrenzung auf

    c:\Windows\System32\ + 1 ordner

    also das was man im explorer als ordner in c:\Windows\System32\ sieht soll noch betreten werden und durchsucht werden nach dateien die ordner ignorieren

    kurz :

    ordner angeben und in dem ordner und einen ordner tiefer alle *.txt dateien mit pfad auflisten

    VB.NET-Quellcode

    1. Dim Root As New IO.DirectoryInfo("DeinOrdner")
    2. 'Leider gibt es irwie nur bei F# Array.Concat()
    3. Dim RootFiles = Root.GetFiles("*.txt").ToList()
    4. Dim SubDirs = Root.GetDirectories()
    5. Dim SubFiles = (From Sr in SubDirs Select Sr.GetFiles("*.txt"))
    6. ListBox.DisplayMember = "FullName"
    7. ListBox.DataSource = RootFiles.Concat(SubFiles)

    /Nicht getestet & sollte nicht so perfomant sein ;)
    Am Besten in einen Thread packen od. verbessern.
    /nicht getestet

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „rotherford“ ()

    VB.NET-Quellcode

    1. Private Function GetTextFiles(ByVal path As String) As List(Of FileInfo)
    2. Dim diRoot = New DirectoryInfo(path)
    3. Dim files = New List(Of FileInfo)(diRoot.GetFiles("*.txt"))
    4. files.AddRange(diRoot.GetDirectories.SelectMany(Function(di) di.GetFiles("*.txt")))
    5. Return files
    6. End Function