konnte zwar irgendwo im Board finden, dass das Thema "rekursive Dateisuche" jetzt (also damals) ausreichend diskutiert sei und man sich darüber nicht mehr auszulassen brauche, aber irgendwie finde ich keine Beispiele, die auf dem aktuellen PB laufen und (von mir, immernoch Anfänger) an meine Bedürfnisse angepasst werden könnten.
Habe deswegen das Beispiel aus der Hilfe für mich wie folgt angepasst:
Code: Alles auswählen
Enumeration
#dir1
#dir2
EndEnumeration
Global dirlist$
Global filelist$
Procedure readfiles (ppath$)
ExamineDirectory(#dir2, ppath$, "*.*")
While NextDirectoryEntry(#dir2) ;<- an dieser Stelle kommt immer der Compiler-Error "directory is not initialized"
If DirectoryEntryType(#dir2) = #PB_DirectoryEntry_File
filelist$ = filelist$ + ppath$ + DirectoryEntryName(#dir2)+"|"
EndIf
Wend
FinishDirectory(#dir2)
EndProcedure
Procedure readdirs (ppath$)
ExamineDirectory(#dir1, ppath$, "*.*")
While NextDirectoryEntry(#dir1)
If DirectoryEntryType(#dir1) = #PB_DirectoryEntry_Directory And Left(DirectoryEntryName(#dir1),1)<>"."
dirlist$ = dirlist$ + DirectoryEntryName(#dir1)+"\|"
EndIf
Wend
FinishDirectory(#dir1)
EndProcedure
;--------------------------
dirlist$ = ""
filelist$ = ""
pfad$ = "C:\Users\chef\Documents\"
readdirs (pfad$)
; liest alle vorhandenen Unterverzeichnisse in "C:\Users\chef\Documents\", mit "|" getrennt in der Variablen dirlist$ gespeichert
n = CountString(dirlist$, "|")
For i = 1 To n
x$ = StringField(dirlist$, i, "|")
readfiles (pfad$ + x$) ;liest für jedes Unterverzeichnis alle vorhandenen Dateien ein, mit "|" getrennt in filelist$ gespeichert
Next
n = CountString(filelist$, "|")
For i = 1 To n
x$ = StringField(filelist$,i,"|")
debug x$ ;<- würde alle Dateien mit vollständigem Pfad ausgeben, wenns funktionieren würde
Next