dime aDirList(1) =tree("C:\") * * tree.prg * lparam cDir private x, aFolders, nDir aDirList(alen(aDirList)) = cDir dime aDirList(alen(aDirList)+1) if right(cDir,1) # '\' cDir = cDir + '\' endif nDir = aDir(aFolders, cDir + "*.*", "D") for x = 1 to nDir if 'D' $ aFolders(x,5) and aFolders(x,1) # '.' =tree(cDir + aFolders(x,1)) endif next x returnIf speed is a concern, you may be better off using the FileSystemObject as mentioned by Ed.