Rekursives Auflisten aller Dateien und Ordner
Verfasst: 02.12.2010 17:33
Für Copy&Paste-Progger eine Procedure, die alle Dateien und Unterordner Auflistet.
Die Abfrage ist deshalb drin,da ExamineDirectory immer abbricht, wenn sie diesen Ordner übergeben bekommt.
Habe bisher noch keine andere Möglichkeit gefunden dies zu umgehen.
Ansonsten funktioniert die Proc. bei mir einwandfrei.
Viel Spass damit
Die Abfrage
Code: Alles auswählen
If FindString(dir$, "System Volume Information", 1) > 0 : ProcedureReturn 0 : EndIf
Habe bisher noch keine andere Möglichkeit gefunden dies zu umgehen.
Ansonsten funktioniert die Proc. bei mir einwandfrei.
Viel Spass damit
Code: Alles auswählen
Declare ListDIR(dir$)
Structure count
files.l
dirs.l
EndStructure
Global NewList datei.s() ; hier sind alle gefundenen Dateien mit komplettem Pfad aufgelistet
Global NewList ordner.s() ; und hier alle Ordner
Global counter.count ; Anzahl der gefundenen Dateien und Ordner
Procedure ListDIR(dir$)
If FindString(dir$, "System Volume Information", 1) > 0 : ProcedureReturn 0 : EndIf
exdir = ExamineDirectory(#PB_Any, dir$, "*.*")
If exdir
While NextDirectoryEntry(exdir)
name$ = DirectoryEntryName(exdir)
If name$ <> "." And name$ <> ".."
If DirectoryEntryType(exdir) = #PB_DirectoryEntry_Directory
FileName$ = dir$+name$+"\"
AddElement(ordner())
ordner() = FileName$
counter.count\dirs = counter.count\dirs+1
Debug FileName$
ListDIR(FileName$)
Else
FileName$ = dir$+name$
AddElement(datei())
datei() = FileName$
counter.count\files = counter.count\files+1
Debug FileName$
EndIf
EndIf
Wend
FinishDirectory(exdir)
Else
MessageRequester("Error","Ordner kann nicht geöffnet werden: "+dir$,0)
EndIf
ProcedureReturn 1
EndProcedure