Moin 1ermehr,
was das
if fts.Attr = faDirectory then
angeht: Lies Dir doch bitte noch mal meinen vorherigen Beitrag durch
Ausserdem sind da noch mehr Kinken drin:
Du erhöhst dcount zweimal
Die Überprüfung mittels DirectoryExists und FileExists kannst Du Dir auch sparen, wenn Du die Attribute richtig testest (z.B.: if (sr.Attr and faDirectory) = faDirectory) then ... um auf Verzeichnis zu prüfen.
Ausserdem prüfst Du den Rückgabewert von FindFirst nicht, auf Erfolg, und Du sicherst FindClose nicht mit try/finally ab (für die letzten Punkte findest Du hier im Forum reichlich Beispiele.