title image


Smiley Rekursives Auslesen aller Verzeichnisse.
HalloEine Rekursion könnte helfen.Ich habe hier mal ein kleines Beispielprogramm.(Einfach in das Fenster-Modul einfügen)Den Speicher dynamisch über Redim Preserve anzufordern scheint keine Probleme zu machen.(Bei mir enthielt die Liste nach dem Aufruf über 18000 Elemente.)'-------------------------------------------------------------------------' Dateityp ermitteln' Wir benötigen diese Funktion, da' GetAttr() eine Exception ausgelöst, wenn' die Datei gesperrt ist.'-------------------------------------------------------------------------Function GetFileTyp(Name As String) As LongOn Error GoTo FunkError If (GetAttr(Name) And vbDirectory) 0 Then GetFileTyp = vbDirectory Else GetFileTyp = vbNormal End If Exit FunctionFunkError: GetFileTyp = -1End Function'-------------------------------------------------------------------------' Liest alle Dateien und Unterverzeichnisse aus' Die Funktion arbeitet rekursiv.'-------------------------------------------------------------------------Sub AllFiles(FileList() As String, ByVal Path As String) Dim i As Long Dim FileTyp As Long Dim FileEnd As Long Dim PathEnd As Long Dim Name As String Dim PathList() As String ReDim SubPath(0 To 0) PathEnd = 0 FileEnd = UBound(FileList) 'ALLE DATEIEN IM AKTUELLEN VERZEICHNIS Name = Dir(Path & "*.*", vbNormal + vbDirectory) While Name "" If (Name ".") And (Name "..") Then Name = Path & Name FileTyp = GetFileTyp(Name) If (FileTyp = vbDirectory) Then PathEnd = PathEnd + 1 ReDim Preserve PathList(0 To PathEnd) PathList(PathEnd) = Name & "\" ElseIf (FileTyp = vbNormal) Then FileEnd = FileEnd + 1 ReDim Preserve FileList(0 To FileEnd) FileList(FileEnd) = Name End If End If Name = Dir Wend 'REKURSIVER AUFRUF FÜR UNTERVERZEICHNISSE For i = 1 To PathEnd Call AllFiles(FileList, PathList(i)) Next i 'DIE LISTE BRAUCHEN WIR NICHTMEHR Erase PathListEnd Sub'-------------------------------------------------------------------------' Hier das Hauptprogramm'-------------------------------------------------------------------------Private Sub Form_Load()Dim List() As String ReDim List(0 To 0) Call AllFiles(List, "D:\") Erase ListEnd Sub

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: