Sintaxis
DIRECTORY(<expresión carácter 1> [ , <expresión carácter 2> ] )
Propósito
Crea un array multidimensional con las informaciones sobre una carpeta en el sistema operativo y sus archivos.
Argumentos
<expresión carácter 1>
Define el drive, la carpeta y los archivos que se incluirán en la búsqueda de las informaciones de la carpeta.
Las tradicionales máscaras para especificar archivos, representadas por los caracteres * (asterisco) y ? (punto de interrogación) se pueden utilizar en la especificación de los nombres de archivos que se considerarán en la búsqueda. Si este argumento se omite, se asume la máscara *.*, es decir, todos los archivos de la carpeta corriente.
<expresión carácter 2>
Especifica los archivos que tienen atributos especiales que se deben incluir en las informaciones suministradas por la función DIRECTORY(). La expresión carácter 2 debe ser constituida por una cadena de caracteres que contengan uno o más caracteres listados en la siguiente tabla:
Atributo | Significado |
H | Inclusión de archivos ocultos (hidden). |
S | Inclusión de archivos de sistema (system). |
D | Inclusión de carpetas (<DIR>). |
V | Busca el nombre del volumen (disco) y borra todos los archivos. |
Además, los archivos normales siempre se incluyen en la búsqueda de la carpeta, a menos que se especifique el atributo “V”.
Utilización
Cada subarray suministrado por la función DIRECTORY() trae informaciones de un archivo y tiene los siguientes elementos:
Elemento | Símbolo | Directry.ch |
1 | Nombre | F_NAME |
2 | Tamaño | F_SIZE |
3 | Fecha | F_DATE |
4 | Hora | F_TIME |
5 | Atributos | F_ATT |
Ejemplos
El siguiente ejemplo crea un array (aArqDir) con las informaciones sobre los archivos del Word y las subcarpetas contenidas en la carpeta corriente. Enseguida, muestra sus nombres por medio de un bloque de código y de las funciones AEVAL() y MsgAlert().
#include “PROTHEUS.CH”
LOCAL aArqDir := DIRECTORY(“*.DOC”, “D”)
AEVAL(aArqDir, { | aFile | MsgAlert(aFile[F_NAME]) } )