Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/01/2012, 11:39
Avatar de acid_burd
acid_burd
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 0
Exclamación Rellenar TreeView con subcarpetas y archivos

Buenas espero que podais ayudarme.
Lo que necesito es rellenar un Arbol con las carpetas y archivos existentes en ellas. Me explico.
Dentro de una carpeta principal "Documentos" hay diferentes carpetas como por ejemplo "Reuniones", "Visitas Medicas", etc (No son siempre las mismas carpetas) y dentro de cada una de estas carpetas hay X archivos con una fecha por nombre(la fecha en la que se creó dicho archivo). Entonces necesito que se me generen los nodos padre con el nombre de las carpetas y dentro de dichos nodos se listen los archivos que hay dentro de dicha carpeta. hasta ahora lo he hecho así:
Código:
Dim archivo As String
    Dim nodoX As node
    Dim contador As String
  
   
    DirDocumentos = V_DAtendidos + "\" + CStr(Me.T_NHistoria) + "\Documentos"
    archivo = Dir(DirDocumentos + "\", vbDirectory)

   
    contador = "1"
    Do While archivo <> ""
        If archivo <> "." And archivo <> ".." Then
            If (GetAttr(DirDocumentos + "\" & archivo) And vbDirectory) = _
            vbDirectory Then
                Set nodeX = ArbolPlantillas.Nodes.Add(, tvwChild, "A" + contador, archivo)
               
                RellenarSubNodos archivo, contador
               
                contador = CInt(contador) + 1
            End If
        End If
        archivo = Dir
    Loop
Código:
Dim archivoS As String
    Dim nodoS As node
    Dim contadorS As String

    DirDocumentos = V_DAtendidos + "\" + CStr(Me.T_NHistoria) + "\Documentos"
    archivoS = Dir(DirDocumentos + "\" + archivo + "\", vbArchive)
    contadorS = "1"
    Do While archivoS <> ""
        If archivoS <> "." And archivoS <> ".." Then
            If (GetAttr(DirDocumentos + "\" & archivo + "\" & archivoS) And vbArchive) = _
            vbArchive Then
                Set nodeX = ArbolPlantillas.Nodes.Add("A" + contador, tvwChild, "B" + contadorS, archivoS)
                contadorS = CInt(contadorS) + 1
            End If
        End If
        archivoS = Dir
    Loop
Si quito la llamada a la funcion "RellenarSubNodos" que es donde me metería los archivos en el nodo correpondiente funciona bien. Se me muestran las carpetas como nodos. Pero con la funcion me da un error en la linea "archivo=Dir" de la funcion principal. El fallo dice "Llamada a procedimiento o argumento no validos"

Conozco muy poco de este control (treeview) y de la funcion Dir, voy aprendiendo segun los uso asi que tal vez haya una manera más sencilla de realizar lo que quiero.

Un saludo y gracias