Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/10/2008, 04:09
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Listar directorios y subdirectorios en un listbox

Cita:
Iniciado por ..::MaRcOs::.. Ver Mensaje
Hola

mi inquietud es la siguinete necesito declaras unas carpetas para que se carguen
sus contenidos en un listbox y no solo deben cargar el contenido de dicha
carpeta si no que el contenidos de las subcarpetas osea todo.

de antemano muchas gracias
al que me pueda colaborar... y a los que no tambien
Hola, prueba con un procedimiento como éste:


Código:
Private Sub ListarDir(sDir As String)
Dim MisCarpetas As String
Dim a() As String, i As Long
Dim iArchivos As Long, iCarpetas As Long

' todos los archivos y carpetas, incluso los ocultos, de sólo lectura y de sistema
MisCarpetas = Dir(sDir, vbDirectory + vbHidden + vbReadOnly + vbSystem)
ReDim a(0)
Do While MisCarpetas <> ""
   If MisCarpetas <> "." And MisCarpetas <> ".." Then
        If (GetAttr(sDir & MisCarpetas) And vbDirectory) = vbDirectory Then
            ' es una carpeta, la añadimos al array
            ReDim Preserve a(i)
            a(i) = MisCarpetas & "\"
            i = i + 1
        Else
            ' es un archivo, lo sumamos a la variable iArchivos
            List1.AddItem MisCarpetas
            iArchivos = iArchivos + 1
      End If
   End If
   MisCarpetas = Dir
Loop
iCarpetas = iCarpetas + i
For i = 0 To UBound(a)
    ' hacemos una recursividad al sub con cada una de las carpetas guardadas en el array
    If a(i) <> "" Then
        ListarDir sDir & a(i)
        List1.AddItem sDir & a(i)
    End If
    DoEvents
Next i
End Sub
Para llamar al procedimiento:

Código:
Private Sub Command1_Click()
ListarDir "c:\Documents and Settings\All Users\"
End Sub