Solamente una pequeña correccion:
La comparacion,
Código Delphi
[-]
if (SearchRec.Attr and faDirectory) =SearchRec.Attr then
...
No es correcta, porque no se cumpliria el "if" si el directorio tuviese algun otro atributo activado, por ejemplo un directorio que ademas estuviese de solo lectura.
el codigo correcto seria asi:
Código Delphi
[-]
if (SearchRec.Attr and faDirectory) <>0 then
...
o asi:
Código Delphi
[-]
if (SearchRec.Attr and faDirectory) =faDirectory then
...
Saludos