Die Community zu .NET und Classic VB.
Menü

FAQ 0134: Wie kann ich den Inhalt eines Verzeichnisses auslesen?

 von 

Frage 

Wie lese ich den Inhalt eines beliebigen Ordners aus?

VB-Bordmittel  

Visual Basic stellt die Funktion Dir$ zur Verfügung, mit dem man die Inhalte eines Ordners ermitteln kann.
Ordner mit Dir$ rekursiv durchsuchen [Tipp 0414]

Funktionen der Windows-API  

Dateien und Verzeichnisse rekursiv suchen [Tipp 0128]

Hier ist ein Beispiel, wie man dies als Klasse verpacken kann:
clsFindFile, Beispiel zu clsFindFile

Mit Hilfe einer Listbox  

Wie man eine Listbox mit dieser Aufgabe betrauen kann, zeigt folgendes Beispiel von pks.

'--------------------------------
'  Module
'
'liefert die Anzahl Dateien in einem Folder
'und die Dateinamen in eine ListBox
'--------------------------------

Option Explicit

Private Declare Function SendMessageStr Lib "user32" _
                Alias "SendMessageA" ( _
                ByVal hwnd As Long, _
                ByVal wMsg As Long, _
                ByVal wParam As Long, _
                ByVal lParam As String) As Long

Private Const LB_DIR As Long = &H18D
Private Const DDL_ARCHIVE As Long = &H20
Private Const DDL_DIRECTORY As Long = &H10
Private Const DDL_DRIVES As Long = &H4000
Private Const DDL_EXCLUSIVE As Long = &H8000
Private Const DDL_HIDDEN As Long = &H2
Private Const DDL_READONLY As Long = &H1
Private Const DDL_READWRITE As Long = &H0
Private Const DDL_SYSTEM As Long = &H4

Public Function GetFilesFromFolderAPI( _
                ByRef LBox As ListBox, _
                ByVal Path As String, _
                Optional ByVal Filter As String = "*.*") As Long
    Dim Result As Long
    Dim s As String
   
    '   Path und Filter zusammenführen
    s = Path
    If Right$(s, 1) <> "\" Then
        s = s & "\"
    End If
    s = s & Filter
  
    LBox.Clear
    'abrufen
    Result = SendMessageStr(LBox.hwnd, LB_Dir, DDL_READWRITE, s)

    GetFilesFromFolderAPI = Result + 1
End Function

Listing 1: Ordnerinhalt in eine Listbox laden

If (GetFilesFromFolderAPI(Me.List1, "C:\Windows", "*.ini") <> 0) Then
    '   mindestens eine Datei wurde gefunden
End If

Listing 2: möglicher Aufruf

Mit Hilfe einer Combobox  

Auch eine Combobox kann diese Aufgabe übernehmen. Wie es geht, zeigt das zweite Beispiel zu CB_DIR im ActiveVB-API-Wiki.

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.