*----------------------------------------------------------------- * FUNCTION ASubdirectorios(taArray, tcRoot) *----------------------------------------------------------------- * Devuelve en un array pasado por referencia todos los nombres de * subdirectorios del directorio "tcRoot". * Los nombres son de la forma: [Unidad]:[\Directorio][\Subdirectorio] * RETORNO: Cantidad de subdirectorios en el array. Si no encontró ningún * subdirectorio o el directorio "tcRoot" no existe, retorna 0 (cero) * EJEMPLO DE USO: * DIMENSION laMiArray[1] * lnC = ASubdirectorios(@laMiArray, "C:\Mis Documentos\") * ? "Cantidad de subdirectorios:", lnC * FOR lnI = 1 to lnC * ? laMiArray[lnI] * ENDFOR *----------------------------------------------------------------- FUNCTION ASubdirectorios(taArray, tcRoot) IF EMPTY(tcRoot) tcRoot = SYS(5) + CURDIR() ENDIF DIMENSION taArray[1] =ARecur(@taArray, tcRoot) IF ALEN(taArray) > 1 DIMENSION taArray[ALEN(taArray) - 1] RETURN ALEN(taArray) ELSE RETURN 0 ENDIF ENDFUNC *----------------------------------------------------------------- * FUNCTION ARecur(taArray, tcRoot) *----------------------------------------------------------------- * Funcion recursiva llamada por ASubdirectorios *----------------------------------------------------------------- FUNCTION ARecur(taArray, tcRoot) PRIVATE lnI, lnCant, laAux tcRoot = ADDBS(tcRoot) lnCant = ADIR(laAux, tcRoot + "*.", "D") FOR lnI = 1 TO lnCant IF "D" $ laAux[lnI, 5] IF laAux[lnI, 1] == "." OR laAux[lnI, 1] == ".." LOOP ELSE lcSubDir = tcRoot + laAux[lnI, 1] =ARecur(@taArray, lcSubDir) taArray[ALEN(taArray)] = ADDBS(tcRoot + laAux[lnI, 1]) DIMENSION taArray[ALEN(taArray) + 1] LOOP ENDIF ENDIF ENDFOR RETURN ENDFUNC *-----------------------------------------------------------------Luis María Guayán
6 de mayo de 2015
Retornar el nombre de todos los subdirectorios de un directorio
Función recursiva que retorna el nombre de todos los subdirectorios de un directorio pasado como parámetro.
Suscribirse a:
Comentarios de la entrada
(
Atom
)
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.