*----------------------------------------------------------------- * 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
Menu
▼
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.
No hay comentarios.:
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.