sábado, 19 de agosto de 2023

Como utilizar el ADIR en VFP

 Utilizando las funciones ADIR y ERASE en Visual FoxPro se puede implementar rutinas powerful para administrar archivos y directorios.

Por ejemplo, el código muestra cómo obtener una lista de los archivos PDF en un directorio y luego borrar selectivamente algunos archivos según cierta condición. Primero se limpia la variable aFiles con CLEAR y se define la ruta del directorio a escanear en cDir.

Luego la función ADIR se encarga de llenar la variable aFiles con la lista completa de archivos y subdirectorios en ese path. El tercer parámetro "D" indica que sólo nos interesan archivos y no subcarpetas. aFiles queda como una matriz bidimensional con el nombre de cada archivo PDF.

Después se itera sobre cada elemento de aFiles con un bucle FOR de 1 a nTotF, siendo éste el número total de archivos encontrados. Dentro del loop se construye la ruta completa de cada archivo combinando cDir + nombre y se almacena en cFullPath.

Aquí es donde entra en acción ERASE, borrando el archivo si su nombre es distinto a "BARRAS2.PDF". La ventana WAIT sirve para ir mostrando cada borrado.

De esta manera, en muy pocas líneas de código se logra escanear un directorio, identificar archivos según un patrón y luego ejecutar acciones sobre ellos como borrar. Esto sería mucho más laborioso sin funciones como ADIR y ERASE.

VFP incluye muchas otras funciones para trabajar con archivos y carpetas, como FILETOSTR(), STRTOFILE(), FCREATE(), DIRECTORY(), ANAME(), ASIZE(), ADATE(), etc. Que combinadas creativamente permiten automatizar tareas de gestión de archivos en Windows de manera rápida y potente.

CLEAR

cDir = "c:\SIGEM\pdf\"

nTotF = ADIR(aFiles, cDir + "\*.pdf", "D")

For i = 1 To nTotF

  cFullPath = cDir + aFiles[i,1]

  IF aFiles[i,1] <> "BARRAS2.PDF" 

    ERASE (cFullPath)

    WAIT WINDOW "BORRANDO "+aFiles[i,1] AT 14,55  TIMEOUT 0.1

  ENDIF

Next


0 comentarios:

Publicar un comentario