Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Listar directorios y subdirectorios en un listbox

Estas en el tema de Listar directorios y subdirectorios en un listbox en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/10/2008, 17:59
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Listar directorios y subdirectorios en un listbox

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
  #2 (permalink)  
Antiguo 29/10/2008, 18:39
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Respuesta: Listar directorios y subdirectorios en un listbox

La mas facil es usar un DirListBox y un FileListBox y recorrer secuencialmente e ir cargando lo que vas leyendo.
  #3 (permalink)  
Antiguo 29/10/2008, 18:41
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Listar directorios y subdirectorios en un listbox

si no es mucha molestia
me puedes indicar como
  #4 (permalink)  
Antiguo 30/10/2008, 03:39
Avatar de rulsanchez  
Fecha de Ingreso: octubre-2008
Ubicación: Manchester
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Listar directorios y subdirectorios en un listbox

Hola marcos, veras, ponte un drivelistbox, un dirlistbox y un filelistbox (para los directorios, las carpetas y finalmente los ficheros).
En el evento Change del drivelistbox tienes que indicarle que el path del dirlistbox sea el del drive del drive es decir: Dirlistbox.Path = Drivelisbox.Drive

En el evento Change del dirlistbox debes indicarle que el path del filelistbox sea el del path del dirlistbox, es decir: FileListbox.Path = DirListbox.Path

Y ya esta, luego en las propiedades de este ultimo (el filelistbox) puedes indicarle que busque determinada extension de archivos etc.
Espero haberte ayudado con esto, si no es asi, cuentame y lo vemos ;)
Un saludo
  #5 (permalink)  
Antiguo 30/10/2008, 04:09
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 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
  #6 (permalink)  
Antiguo 30/10/2008, 09:32
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Listar directorios y subdirectorios en un listbox

Hola Avellaneda
muchas gracias perfecto lo que necesitaba
ya habia echo uno pero pues no era como tan
confiable como me parece este... muchas gracias¡
  #7 (permalink)  
Antiguo 06/11/2008, 13:31
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Listar directorios y subdirectorios en un listbox

hola de nuevo yo jeje
ahora resulta que no esta sacando el resto de subdirectorios
me explico

tengo las siguientes carpetas:

-musica
----vallenatos
--------diomedes diaz
----rancheras
--------vicente fernandez
--------cornelio reina
----merengue
----rock

y solo me esta mostrando los archivos de
musica, vallenatos, rancheras, merengue y rock
y las subcarpetas de las subcarpetas no

que puedo hacer?
  #8 (permalink)  
Antiguo 06/11/2008, 14:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Listar directorios y subdirectorios en un listbox

Yo también opino que es más fácil si usas el DirListBox, DriveListBox y FileListBox.

Bueno, de todos modos tal vez te resulte útil este ejemplo para buscar archivos recursivamente, no es exactamente lo que buscas, pero puede darte una idea:
http://www.forosdelweb.com/f69/busca...0/#post2539874
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 07/11/2008, 02:48
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: Listar directorios y subdirectorios en un listbox

Cita:
Iniciado por ..::MaRcOs::.. Ver Mensaje
hola de nuevo yo jeje
ahora resulta que no esta sacando el resto de subdirectorios
me explico

tengo las siguientes carpetas:

-musica
----vallenatos
--------diomedes diaz
----rancheras
--------vicente fernandez
--------cornelio reina
----merengue
----rock

y solo me esta mostrando los archivos de
musica, vallenatos, rancheras, merengue y rock
y las subcarpetas de las subcarpetas no

que puedo hacer?

Hola Marcos,
¿Seguro que copiaste bien el procedimiento? a mi me funciona correctamente; lista los archivos, carpetas y todas las subcarpetas con sus archivos.

¿De qué tipo son los archivos que no lista?

Un saludo
  #10 (permalink)  
Antiguo 13/04/2015, 18:52
 
Fecha de Ingreso: abril-2015
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Respuesta: Listar directorios y subdirectorios en un listbox

Hola, te está listando los directorios que no incluyen el caracter espacio en sus nombres.
Es mala practica informática ponerle nombre a los archivos o carpetas que incluyan espacio, dado que complejiza su manejo para las scripts de DOS por ejemplo.Y se ve que en este caso también complica.
De cualquier manera con esta rutina no me pasa:

Camino = TextPath.Text
'Listo directorios
'Directorio = Dir(Camino, vbDirectory + vbHidden + vbReadOnly + vbSystem) 'Si quiero carpetas del ocultas, del sistema, etc
Directorio = Dir(Camino, vbDirectory)
Do While Directorio <> ""
DoEvents
If Directorio <> "." And Directorio <> ".." Then
If (GetAttr(Camino + Directorio) And vbDirectory) = vbDirectory Then
TextCarpetas.Text = TextCarpetas.Text + vbCrLf + Directorio
End If
End If
Directorio = Dir
Loop

Es en VB 6.0, incluye un TextBox llamado TextCarpetas
  #11 (permalink)  
Antiguo 17/04/2015, 17:18
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Listar directorios y subdirectorios en un listbox

La idea era meterlos en un listbox (ademas de que has escarbado bien :D 2008, que tiempos...)

En fin, solo hay que cambiar el textbox por un listbox y adaptarlo para que busque tambien los subdirectoros :P
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:46.