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