Hola Antonio,
He optimizado el codigo y funciona bien mientras no sea un gran volumen de directorios. Por ejemplo, lo he probado con E: que es una estructura limitada.
Pero si le paso C:, se cuelga la aplicación.
No se por donde puede estar el fallo. A ver si me puedes ayudar. Aqui te muestro el codigo:
- Code: Select all Expand view
static function fPrueba( cPath )
local x
local aFiles := Iif( SubStr( AllTrim( cPath ), Len( cPath ), 1 ) = "\",;
directory( cPath + '*.*' , 'D' ),;
directory( cPath + '\*.*', 'D' ) )
local nFilCount := len( aFiles )
for x := 1 to nFilCount
if 'D' $ aFiles[ X, F_ATTR ]
if aFiles[ X, F_NAME ] <> '.'
if SubStr( AllTrim( cPath ), Len( cPath ), 1 ) = "\"
fPrueba( cPath + aFiles[ X, F_NAME ] )
else
fPrueba( cPath + '' + aFiles[ X, F_NAME ] )
endif
endif
endif
next
oGetMemo:cText += cPath + CRLF // := cDir
oGetMemo:Refresh()
return nil