Examina lo que significa la llamada a FindFirst.
FindFirst(Dir, faDirectory, Nombre);
busca los directorios (faDirectory) cuyo nombre corresponda a Dir. Si el directorio existe, sus datos se colocan en la variable Nombre y de aquí que lo que obtienes es el nombre del directorio que pasas en Dir.
FindFirst(Dir, faArchive, Nombre);
busca los archivos (faArchive) cuyo nombre corresponda a Dir. Si Dir es, por ejemplo, 'C:\Temp', FindFirst busca un archivo cuyo nombre sea 'C:\Temp', que no existe y por ello no te devuelve nada.
El punto está en la frase "cuyo nombre corresponda a". El primer parámetro de FindFirst puede incluir comodines. Así que lo más adecuado sería:
FindFirst(Dir + '\*.*', faArchive, Nombre);
De esta manera, si como en el ejemplo Dir es 'C:\Temp', FindFirst buscará los archivos cuyo nombre corresponda a 'C:\Temp\*.*', es decir, cualquier archivo dentro del directorio C:\Temp y pondrá en Nombre los datos del primero que encuentre o devolverá <> 0 si no hay ninguno.
Para cerrar la búsqueda usa FindClose.
// Saludos
|