RE:Contar Archivos en un directorio
Otra opción de la que dispones, si no quieres tener que incluir en tu proyecto un control FileList, es utilizar la función Dir. Esta función permite extraer todos los nombres de archivos y carpetas a partir de una ruta de acceso dada, y puedes especificar filtros tanto de nombre y extensión de archivo como propiedades de archivo.
Lo mejor es que consultes la ayuda en línea de Vb o los Libros en Pantalla, pero en breve, la función Dir tiene la siguiente sintaxis:
Variable = Dir[(Ruta_Completa[, Atributos_de_archivo])]
La primera vez que llames a la función Dir, te pondrá en Variable (que debe ser de tipo STRING) el nombre del primer archivo o carpeta encontrado en Ruta_Completa, y que tenga los atributos Atributos_de_archivo.
Para sacar el resto de archivos de la carpeta en Ruta_Completa, debes volver a llamar a la función Dir, pero de aquí en adelante sin especificar ni ruta ni atributos, es decir.
Variable=Dir
, y seguirá extrayendo todos los nombres, con los parámetros que hubieras usado en la primera invocación.
Lógicamente, deberás usar un bucle Do... Loop, que terminará cuando la función Dir ya no encuentre más cosas en Ruta_Completa, en cuyo momento devolverá una cadena vacía.
Dicho en código (ejemplo)
Dim Nombre As String, RutaAcceso As String
RutaAcceso = "C:\Mis documentos\*.DOC"
Nombre = Dir(RutaAcceso, 63) ´ el 63 es para que te muestre absolutamente todos los archivos, incluso los ocultos
Debug.Print Nombre
Do
Nombre = Dir
If Nombre = "" Then Exit Do
If Nombre <>"." And Nombre <>".." Then ´ ignora los nombres de directorio [.] y [..], que siempre te saldrán
If (GetAttr(MiRuta & MiNombre) And vbDirectory) = vbDirectory Then ´ esto es para ignorar las subcarpetas
Else
Debug.Print Nombre
End If
End If
Loop
, en fin, probablemente tengas que hacer un par de cambios a este código para adaptarlo a tus necesidades, pero en esencia, éste es el uso de la función Dir, si como te digo no quieres tener que depender de un control de VB.
Por supuesto, si te interesa específicamente CONTAR cuántos *.DOC hay, no tendrías más que sustituir las líneas
Debug.Print Nombre
por ésta otra:
Contador = Contador + 1
(o añadirla a la anterior, si quieres ambas cosas, claro)
Saludossss,
Pentarou