Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB.NET | 29.12.02 |
Dateien eines Ordners inkl. Unterordners ermitteln Unter Einsatz der System.IO-Klasse lassen sich schnell alle Dateien eines Ordners ermitteln. | ||
Autor: Martin Riedl | Bewertung: | Views: 25.274 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das nachfolgende Beispiel zeigt, wie sich unter Zuhilfenahme der neuen .NET-Klasse System.IO alle Dateien eines Ordners inkl. evtl. vorhandener Unterordner ermitteln lassen.
' Ermittelt alle Dateien eines Ordners inkl. ' aller Unterordner Function F_GetAllFiles(ByVal sPath As String) As String() Dim arr_Folders() As String Dim arr_Files() As String Dim arr_Temp() As String Dim n As Integer Dim nSize As Integer ' Ordner in Array speichern arr_Folders = System.IO.Directory.GetDirectories(sPath) ' Schleife zum Durchlaufen der Ordnerarrays For n = 0 To arr_Folders.Length - 1 ' Dateien ermitteln und temporär zwischenspeichern arr_Temp = System.IO.Directory.GetFiles(arr_Folders(n)) ' temporäres Array dem Array arr_Files() hinzufügen If arr_Files Is Nothing Then arr_Files = arr_Temp Else ' "alte" Größe des Arrays merken nSize = arr_Files.Length ' Array erweitern... ReDim Preserve arr_Files(nSize + arr_Temp.Length - 1) arr_Temp.CopyTo(arr_Files, nSize) End If ' Prüfen, ob es weitere Unterordner gibt. ' ACHTUNG! rekursiver Funktionsaufruf!!! F_GetAllFiles(arr_Folders(n)) Next n ' Funktionsrückgabewert: ' String-Array mit allen Dateiennamen Return arr_Files End Function
Beispiel für den Aufruf:
' Alle Dateien ermitteln und in einer ' Standard ListBox anzeigen Dim myFiles() As String Dim n As Integer myFiles = F_GetAllFiles("d:\temp") For n = 0 To myFiles.Length - 1 ListBox1.Items.Add(myFiles(n)) Next n