Moin Thomas,
also wenn Du schon so fragst
Im Ernst, zu Deinem eigentlichen Problem kann ich Dir leider jetzt nicht helfen, mir ist allerdings trotzdem noch ein Fehler aufgefallen:
Die Abfrage (SR.Name[1]<>'.') ist falsch, auch wenn sie meist so funktioniert wie gedacht.
Es muss explizit auf (SR.Name <> '.') and (SR.Name <> '..') abgefragt werden, denn ein Punkt zu Beginn eines Datei- oder Verzeichnisnamens ist erlaubt, und kann erzeugt werden.