Feedback

VB - Alle Dateien eines Ordners auflisten

Veröffentlicht von am 26.11.2006
(1 Bewertungen)
Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern. Man bekommt die Dateiliste als "List(Of String)" zurück.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

Public Class ListFiles
    ''' <summary>
    ''' Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern
    ''' </summary>
    ''' <param name="Root">Der Ordner dessen Dateien aufgelistet werden sollen</param>
    ''' <param name="SubFolders">Gibt an ob auch die Unterordner durchsucht werden sollen</param>
    Public Shared Function GetFileList(ByVal Root As String, Optional ByVal SubFolders As Boolean = True) As List(Of String)
        Dim FileList As New List(Of String)
        SeekFiles(Root, FileList, SubFolders)
        Return FileList
    End Function

    Private Shared Sub SeekFiles(ByVal Root As String, ByRef FileArray As List(Of String), ByVal SubFolders As Boolean)
        Try
            Dim Files() As String = System.IO.Directory.GetFiles(Root)
            Dim Folders() As String = System.IO.Directory.GetDirectories(Root)

            For i As Integer = 0 To UBound(Files)
                FileArray.Add(Files(i).ToString)
            Next

            If SubFolders = True Then
                For i As Integer = 0 To UBound(Folders)
                    SeekFiles(Folders(i), FileArray, SubFolders)
                Next
            End If
        Catch Ex As Exception
        End Try
    End Sub
End Class
Abgelegt unter Suche, Datei, Auflisten, GetFiles, GetDirectories.

1 Kommentare zum Snippet

niemand schrieb am 22.11.2011:
Ok, es gibt eindeutig keine "ordentliche" Lösung (ich baue auf "einfachen" Code, weiß nicht, warum alle immer so hochkompliziert denken müssen!) um Ordner innerhalb eines Ordners in einem schönen Array anzuzeigen. Jedenfalls funktioniert o.g. Lösung nicht oder ich bin einfach nur zu blöd, mit den 3 Zeilen Kommentaren die Lösung in mein Projekt einzubinden.

Folgendes funktionierte übrigens auch nicht:

Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sItem As String
Dim sPath As String

sPath = Path.GetDirectoryName(Application.ExecutablePath)
sItem = Dir(sPath, vbDirectory)

Do While sItem <> ""
If sItem <> "." And sItem <> ".." Then
If (GetAttr(sPath & sItem) And vbDirectory) = vbDirectory Then
liste1.Items.Add(sItem)
End If
End If
sItem = Dir()
Loop

End Sub


Wenn einer den Fehler findet, darf er ihn behalten und für eigene Zwecke missbrauchen. Dies ist der Kommentarbereich, keine Möglichkeit zur Kommunikation untereinander.
 

Logge dich ein, um hier zu kommentieren!