Moin Arnoldo,
mal wieder einer der beliebtesten Fehler
Diese Abfrage ist leider falsch
(f.name[1]<>'.')
es muss heissen
(f.name <> '.') and (f.name <> '..')
in den meisten Fällen wird der Fehler zwar nicht auffallen, aber Datei und Verzeichnisnamen dürfen unter Windows durchaus mit einem . beginnen, auch wenn man dies mit dem Explorer nicht hinbekommt. (aus der Konsole heraus geht es z.B.)