Leer carpetas y archivos que contiene? (SOLUCIONADO)

Leer carpetas y archivos que contiene? (SOLUCIONADO)

Postby Armando » Sun Dec 07, 2014 1:44 am

Hola:

Amigos, necesito una función que me permita leer las carpetas y los archivos que contengan
cada una de las carpetas y crear un array para posteriormente crear un tree. ejemplo

|-----Carpeta 1
|-------- Archivo 1
|-------- Archivo 2
|-----Carpeta 2
|-------- Archivo 1

etc

Lo he intentado con la función DIRCTORY() pero no logro el objetivo.

Saludos
Last edited by Armando on Sun Dec 07, 2014 7:09 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3183
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Leer carpetas y archivos que contiene?

Postby Antonio Linares » Sun Dec 07, 2014 8:18 am

Armando,

Aqui lo tienes. Tarda un poco en cargar porque va a leer tu disco duro completo pero eso es parametrizable en el código variando el path de inicio.

Este tipo de código está basado en la "recursividad". Si te fijas la función FillTree() se llama a ella misma :-)

Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oDlg, oTree
   
   DEFINE DIALOG oDlg SIZE 500, 340
   
   @ 0.5, 1 TREEVIEW oTree OF oDlg SIZE 100, 150
   
   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT FillTree( oTree, "C:\" )      
   
return nil

function FillTree( oTree, cPath, oItem )

   local aInfo := Directory( cPath, "
D" )
   local n, oNode

   for n = 1 to Len( aInfo )
      if ! aInfo[ n ][ 1 ] $ "
.,.."
         if oItem == nil
            oNode = oTree:Add( aInfo[ n ][ 1 ] )
         else  
            oNode = oItem:Add( aInfo[ n ][ 1 ] )
         endif
         if "
D" $ aInfo[ n ][ 5 ]
            FillTree( oTree, cPath + aInfo[ n ][ 1 ] + "
\", oNode )
         endif
      endif  
   next

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41901
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Leer carpetas y archivos que contiene?

Postby Armando » Sun Dec 07, 2014 5:46 pm

Maestro:

Excelente!, funciona de 100%, en realidad no necesito todo el DD, así que lo de la
lentitud no es problema, como bien dices, es cuestión del PATH.

Gracias Antonio
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3183
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 29 guests