PDA

Ver la Versión Completa : buscar ficheros con mascara en un directorio


petete2008
02-09-2010, 22:30:51
Hola a todos :
Me gustaria obtener en un memo un listado de los nombres de los ficheros que hay en un directorio de mi disco C.
He encontrado el siguiente código que funciona bien cuando el caracter comodín utiilzado es el asterisco (*), en cambio no funciona para el caracter comodin interrogante (?)

http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/delphi/respuestas/2133198/leer-archivos-directorio-con-combobox

Alguien sabe como hacer una busqueda por ejemplo
ListaDeArchivos := ArchivosCarpeta('C:\MiCarpeta', '*foto?.jpg', False, False);

Gracias!!

ecfisa
03-09-2010, 07:00:04
Hola petete.

La función del link funciona perfectamente, para quitarte las dudas hacé la siguiente prueba:

ComboBox1.Items := ArchivosCarpeta('C:\Windows\', 'twunk_??.EX?', False, False);


Creo tenés un error de concepto sobre el funcionamiento de los comodines en dos/windows.

*: Ignora todos los caracteres a partir de su hubicación, ya sea del nombre o la extensión del archivo.
?: Ignora el caracter situado en esa posición.

Entonces como pusiste arriba:
ListaDeArchivos := ArchivosCarpeta('C:\MiCarpeta', '*foto?.jpg', False, False);
No tiene sentido el signo de interrogación '?', ya que al tener un '*' al principio admite todos los nombres cuya extensión sea '.JPG'.

Si tu filtro es : 'ARCH?VO.*', te va a mostrar los archivos cuyo nombre tenga 'ARCH'(no interesa)'VO'.(todas las extensiones).
Como por ejemplo: ARCHAVO.TXT, ARCHBVO.EXE, ARCHCVO.PDF, ARCH&VO.000, ARCHZVO.Z$Z, ...

Pero de ningún modo te va a mostrar un archivo que se llame: ARCHIVO1.TXT


Saludos.:)

petete2008
06-09-2010, 14:44:16
Gracias por la aclaración.
Llevás razón!! :)