ich wollte das eigentlich kurz in wenigen Minuten programmieren, nun sitze ich seit 3 Sunden daran und finde trotz Code-Archiv ud Forum keine Lösung.
Ich möchte die Dateinamen eines Verzeichnisse inkl. aller Unterverzeichnisse in einem Array speichern.
Dafür benötige ich natürlich einen Zähler um das Array zu ReDimensionieren und den Eintrag zuzuweisen -
und genau hier ist der Haken, ich bekomme den Zähler nicht korrekt zum Laufen.
Ich habe mal folgendes aus dem Code Archiv und exemplarisch einen DEBUG hinzugefügt - dieser spiegelt das Problem wieder an dem ich hänge, trotz vieler Code-Variationen mittlerweile.
Code: Alles auswählen
Procedure.l CountFiles(Dir.s)
Protected ID.l, files.l
If Right(Dir, 1) <> "\"
Dir + "\"
EndIf
ID = ExamineDirectory(#PB_Any, Dir, "")
If ID
While NextDirectoryEntry(ID)
Select DirectoryEntryType(ID)
Case 0
Break
Case #PB_DirectoryEntry_File
Debug files ; <- Hier sollte das Array gefüllt werden ;-)
files + 1
Case #PB_DirectoryEntry_Directory
If DirectoryEntryName(ID) <> "." And DirectoryEntryName(ID) <> ".."
files + CountFiles(Dir + DirectoryEntryName(ID))
EndIf
EndSelect
Wend
EndIf
ProcedureReturn files
EndProcedure
Dir.s = PathRequester("Pfad auswählen...", "C:\")
If Dir
files.l = CountFiles(Dir)
MessageRequester(Dir, "Das Verzeichnis enthält " + Str(files) + " Dateien und Verzeichnisse.")
EndIf
Ich bin für jeden Vorschlag dankbar, von mir aus kann es auch anders gelöst werden (LinkedList ?)...