Listar todos los ficheros de un directorio

08/06/2006 - 23:26 por javier | Informe spam
Listar todos los ficheros de un directorio


Buenos dias:

Estaba intentando usar éste código que nos dejaron KL y Manuel Romero


'-Inicio Codigo--
Const sRuta = "C:\Documents and Settings\juan\Mis documentos\prueba\" 'ruta
hacia la carpeta
Const sFiltro = "*.*"

Sub ExtraerNombres()
Dim sBusc As String, lCont As Long

Application.ScreenUpdating = False
lCont=1
sBusc=Dir(sRuta & sFiltro)
Do While sBusc<>""
Worksheets(1).Cells(lCont + 1, "A") = sBusc
lCont=lCont+1
sBusc=Dir()
Loop
End Sub
'-Fin Codigo--



El código funciona bien pero yo necesitaba incluir la ruta completa (junto
con el nombre de los archivos)que hay en dicha carpeta ( \prueba\ ) y en
todas las subcarpetas contenidas. O sea todos los archivos. También
necesitaba indicar el tamaño y la fecha de modificación, por ejemplo en
columnas contiguas "B" y "C", de cada archivo.

PD.:
Donde pone Const sFiltro = "*.xls" yo lo he dejado así: Const sFiltro =
"*.*" porque necesito listar cualquier archivo

Muchas gracias,
djavier
 

Leer las respuestas

#1 KL
09/06/2006 - 14:16 | Informe spam
Hola Javier,

Listar todos los ficheros de un directorio
incluir la ruta completa
todas las subcarpetas contenidas
indicar el tamaño y la fecha de modificación



Yo haria algo asi:

'--Inicio Codigo--
Sub test()
Dim miRuta As String
Dim Fila As Long
Dim i As Long
Dim miHoja As Worksheet

miRuta = "C:\Documents and Settings\juan\Mis documentos\prueba\"
Set miHoja = Worksheets(1)

With Application.FileSearch
.NewSearch
.LookIn = miRuta
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
If .Execute > 1 Then
If .FoundFiles.Count = 0 Then
MsgBox "No se ha encontrado ningun archivo", vbInformation
Exit Sub
End If
Fila = 1
With miHoja.Range("A1:C1")
.Value = Array("Archivo", "Tamano", "Fecha Modificacion")
.Font.Bold = True
End With
For i = 1 To .FoundFiles.Count
Fila = Fila + 1
miHoja.Cells(Fila, 1) = .FoundFiles(i)
miHoja.Cells(Fila, 2) = FileLen(.FoundFiles(i))
miHoja.Cells(Fila, 3) = FileDateTime(.FoundFiles(i))
Next i
End If
End With
End Sub
'--Final Codigo--

Preguntas similares