Zitat:
if sr.Name[1] <> '.' then begin
Das ist falsch, da Datei-/Verzeichnisnamen auch mit einem Punkt beginnen dürfen.
if (sr.Name <> '.') and (sr.Name <> '..') then begin
So ist es richtig.
Genau, da "." das aktuelle Verzeichnis ist und ".." das Elternverzeichnis ist.