GetDirs('c:\Datas') select DirList scan lnFiles = adir(arrFiles,trim(Dirname)+'*.*') for ix = 1 to lnFiles *do whatever endfor endscan function GetDirs lparameters tcPath local lcTopDir lcTopDir = sys(5)+curdir() create cursor dirlist (dirname c(127)) =getsubdirs(tcPath) set default to (lcTopDir) browse function getsubdirs lparameters tcPath local lcCurDir, lnSubDirs, ix local array laDirs[1] set default to (tcPath) lcCurDir = sys(5)+curdir() lnSubdirs=adir(laDirs,"","D") insert into dirlist values (lcCurDir) for ix = 1 to lnSubDirs if laDirs[ix,1]#"." =getsubdirs(laDirs[ix,1]) set defa to (lcCurDir) endif endforCetin