22-9-9 Herramienta comentada : Ejecutar acciones sobre conjuntos de archivos en carpetas

La herramienta comprende tres grandes bloques

1.- Indicar una carpeta

2.- Indicar la acción a ejecutar con los archivos de la carpeta

3.- Iniciar el proceso

Para indicar la carpeta se usa la funcion de API de windows como BrowseForFolder de shell32.dll que nos presenta una ventana de seleccion similar a esta:

Elegir Carpeta

Cuando se elige una carpeta se activa el botón aceptar y su nombre completo pasa a nuestra aplicación

Carpeta Elegida

Dentro de la carpeta podemos montar un bucle con el comando DIR para obtener todos los archivos que tengan determinadas caracteristicas usando las extensiones o tipos de archivo, los comodines ? y * de MSDOS etc.

Dentro del bucle ejecutamos la acción requerida en una funcion a parte donde pasamos el nombre completo con la carpeta y el nombre de archivo obtenido con el comando DIR

Como ejemplo la accion de compactar bases de datos (archivos MDB) ejecuta el comando COMPACTDATABASE donde el nombre de la base de datos compactada es igual que el de la original agregando la terminacion "co", despues se elimina la original (con KILL) y luego se cambia de nombre a la "co" eliminando la terminación (con NAME)

Como los nombres de archivo se estan modificando a la vez que se estan obteniendo, se producen incongruencias que se han resuelto modificando el bucle DIR para solo almacenar la lista de archivos MDB en una tabla, y despues de finalizar la lista, otro nuevo bucle independiente recorre la tabla llamando a COMPACTDATABASE con cada elemento.