...; Recurse: Boolean = True; Recursionstiefe: Integer=0);
und dann beim Aufruf der Recursion dort Recursionstiefe+1 übergeben?
Zitat:
das funktioniert leider nicht so ganz. hier mein code der besagten methode:
Nicht ganz?
Es geht garnicht, denn entgegen deiner Beschreibung ist da doch garnichts an Code drin enthalten, was dafür zuständig sein könnte.
Dein nicht vorhandener Versuch funktioniert also ohne Probleme. (es ist nichts drin, was nicht funktioniert und somit funktioniert alles, wie es soll
)
Zitat:
if not (name[1] = '.') then liste.Add(name);
Falsch, denn um dich einfach mal nach Linux, oder besser in einen Apache gucken zu lassen ... du kennst nicht zufällig Dateien wie .htaccess, oder wie wäre es mit den .git- und .svn-Verzeichnissen?
Auch wenn der Explorer sich weigert solche Dateinamen händisch anlegen zu lassen. Das Dateisystem erlaubt es und viele Programme machen es auch.
if (Name <> '.') and (Name <> '..') then
oder if MatchStr(Name, ['.', '..']) then
wäre möglich.
Rein theoretisch wäre es möglich im Dateisystem eine Datei "ohne" Namen zu haben, womit dann ein Zugriff ala Name[1]
knallen würde, da es kein erstes Zeichen gibt, aber zum Glück für dich ist das nahezu ausgeschlossen.
Oder wolltest du damit Verzeichnisse mit solchen Namen ausblenden?