Nota: La función, método, objeto o propiedad descrita en este tema se deshabilita si el Servicio de expresiones de Microsoft Jet se ejecuta en modo de espacio aislado, lo que impide la evaluación de expresiones potencialmente no seguras. Para obtener más información sobre el modo de espacio aislado, busca "modo de espacio aislado" en la Ayuda.

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

Sintaxis

Dir[(nombre_de_ruta [, atributos] )]

La sintaxis de la función Dir tiene estos argumentos:

Argumento

Descripción

Ruta

Opcional. Expresión de cadena que especifica un nombre de archivo: puede incluir directorio o carpeta y unidad. Se devuelve una cadena de longitud cero ("") si no se encuentra nombre de ruta .

Atributos

Opcional. Constant o expresión numérica, cuya suma especifica atributos de archivo. Si se omite, devuelve archivos que coinciden con nombre de ruta pero no tienen atributos.

Configuración

Los atributosargumento la configuración son:

Constante

Valor

Descripción

vbNormal

0

(Valor predeterminado) Especifica los archivos sin atributos.

vbReadOnly

1

Especifica archivos de solo lectura además de archivos sin atributos.

vbHidden

2

Especifica los archivos ocultos además de los archivos sin atributos.

VbSystem

4

Especifica los archivos del sistema además de los archivos sin atributos. No disponible en Macintosh.

vbVolume

8

Especifica la etiqueta de volumen; si se especifica cualquier otro atributo, vbVolume se omite. 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 (VBA) especifica estas constantes y se pueden usar en cualquier lugar del código en lugar de los valores reales.

Comentarios

En Microsoft Windows, Dir admite el uso de caracteres comodín de varios caracteres (*) y caracteres únicos (?) para especificar varios archivos. En Macintosh, estos caracteres se tratan como caracteres de nombre de archivo válidos y no se pueden usar comodines para especificar varios archivos.

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

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

Para iterar por todos los archivos de una carpeta, especifique una cadena vacía:

Dir("")

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

Cualquier valor de atributo mayor que 256 se considera un valor de MacID .

Debe especificar nombre_de_ruta la primera vez que llame a la función Dir o se produzca un error. Si también especifica atributos de archivo, debe incluirse nombre_de_ruta .

Dir devuelve el primer nombre de archivo que coincide con nombre de ruta. Para obtener nombres de archivo adicionales que coincidan con nombre de ruta, vuelva a llamar a Dir sin argumentos. Cuando no coincidan más nombres de archivo, Dir devuelve una cadena de longitud cero (""). Una vez devuelta una cadena de longitud cero, debe especificar nombre_de_ruta en llamadas posteriores o se produce un error. Puede cambiar a un nombre de ruta nuevo sin recuperar todos los nombres de archivo que coincidan con el nombre de ruta actual. Sin embargo, no puede llamar a la función Dir de forma recursiva. Al llamar a Dir con el atributo vbDirectory , no se devuelven subdirectorios continuamente.

Sugerencia     Dado que los nombres de archivo se recuperan en ningún orden en particular, es posible que desee almacenar los nombres de archivo devueltos en un matriz y, a continuación, ordenar la matriz.

Ejemplo

Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.

En este ejemplo se usa la función Dir para comprobar si existen determinados archivos y directorios. En Macintosh, "HD:" es el nombre de unidad predeterminado y las partes del nombre de ruta se separan con dos puntos en lugar de barras diagonales inversas. Además, los caracteres comodín de Windows se tratan como caracteres de nombre de archivo válidos en Macintosh. Sin embargo, puede usar la función MacID para especificar grupos de archivos.

Dim MyFile, MyPath, MyName' Returns "WIN.INI" (on Microsoft Windows) if it exists.MyFile = Dir("C:\WINDOWS\WIN.INI")    ' Returns filename with specified extension. If more than one *.ini' file exists, the first file found is returned.MyFile = Dir("C:\WINDOWS\*.INI")' Call Dir again without arguments to return the next *.INI file in the ' same directory.MyFile = Dir' Return first *.TXT file with a set hidden attribute.MyFile = Dir("*.TXT", vbHidden)' Display the names in C:\ that represent directories.MyPath = "c:\"    ' Set the path.MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.Do While MyName <> ""    ' Start the loop.    ' Ignore the current directory and the encompassing directory.    If MyName <> "." And MyName <> ".." Then        ' Use bitwise comparison to make sure MyName is a directory.        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then            Debug.Print MyName    ' Display entry only if it        End If    ' it represents a directory.    End If    MyName = Dir    ' Get next entry.Loop

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.