Dir

Devuelve una tipo String que representa el nombre de un archivo, directorio o carpeta que coincide con un modelo especificado o atributo de archivo, o la etiqueta de volumen de una unidad.

Sintaxis

Dir [ (ruta, [ atributos ] ) ]

La sintaxis de la función Dir tiene tres partes:

Parte Descripción
pathname Opcional. Expresión de cadena que especifica un nombre de archivo; se puede incluir un directorio o carpeta y una unidad. Se devuelve una cadena de longitud cero ("") si no se encuentra la ruta de acceso.
atributos Opcional. Constante o expresión numérica, cuya suma especifica atributos de archivo. Si se omite, devuelve archivos que coincidan con la ruta de acceso, pero que no tengan ningún atributo.

Configuración

La configuración del argumentoattributes es:

Constante Valor Descripción
vbNormal 0 Especifica archivos sin atributos (valor predeterminado).
vbReadOnly 1 Especifica archivos de solo lectura además de archivos sin atributos.
vbHidden 2 Especifica archivos ocultos además de archivos sin atributos.
VbSystem 4 Especifica archivos de sistema además de archivos sin atributos. No disponible en Macintosh.
vbVolume 8 Especifica la etiqueta de volumen. Si se especifica cualquier otro atributo, vbVolume se ignora. No disponible en Macintosh.
vbDirectory 16 Especifica directorios o carpetas además de archivos sin atributos.
vbAlias 64 El nombre de archivo especificado es un alias. Disponible solo en Macintosh.

Nota:

Visual Basic para Aplicaciones especifica estas constantes y se pueden usar en cualquier parte del código en lugar de los valores reales.

Observaciones

En Microsoft Windows y macOS, Dir admite el uso de caracteres comodín de varios caracteres (*) y de un solo carácter (?) para especificar varios archivos.

Como en Macintosh no se admite el uso de caracteres comodín, use el tipo de archivo para identificar grupos de archivos. Use la función MacID para especificar el tipo de archivo, en lugar de usar los nombres de archivo. Por ejemplo, la instrucción siguiente devuelve el nombre del primer archivo de texto en la carpeta actual:

Dir("SomePath", MacID("TEXT"))

Para procesar una iteración en todos los archivos de una carpeta, especifique una cadena vacía:

Dir()

Si usa la función MacID con Dir en Microsoft Windows, se producirá un error.

Cualquier valor de atributo superior a 256 se considera un valor MacID.

Tiene que especificar la ruta de acceso la primera vez que llame a la función Dir; de lo contrario, se producirá un error. Si también especifica atributos de archivo, tendrá que incluir la ruta de acceso.

Dir devuelve el primer nombre de archivo que coincida con la ruta de acceso. Para obtener nombres de archivo adicionales que coincidan con la ruta de acceso, vuelva a llamar a Dir sin argumentos. Cuando ya no coincidan más nombres de archivo, Dir devolverá una cadena de longitud cero (""). Si se devuelve una cadena de longitud cero, tendrá que especificar la ruta de acceso en llamadas posteriores; de lo contrario, se producirá un error.

Puede usar otra ruta de acceso sin recuperar todos los nombres de archivo que coincidan con la ruta de acceso actual. Pero no puede llamar a la función Dir recursivamente. Al llamar a Dir con el atributo vbDirectory, no se devuelven de forma continua subdirectorios.

Sugerencia

Dado que los nombres de archivo se recuperan en orden sin distinción de mayúsculas y minúsculas en Windows y en macOS, es posible que quiera almacenar los nombres de archivo devueltos en una matriz y, después, ordenar la matriz.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.