yo te recomiendo mantener una condición que verifique si es un directorio para la recursividad, por cuestiones de eficiencia de tu programa.
Como ya comentaron, habrá que investigar un poco mas, pero sigue siendo válido hacer:
Código:
if [sr.Attr and faDirectory] faDirectory then
BuscaArchivos(Ruta + '\' + sr.Name,Mask,FileAttrs)
o también has tenido problemas con esto??
Hasta luego