(rontolisp) docs
← Functions

uiop:collect-sub*directories

(uiop:collect-sub*directories directory collectp recursep collector)

Walks a directory tree. Each directory reached is passed to collectp; when that answers true it is passed to collector. Each of its subdirectories is passed to recursep; when that answers true the walk descends into it. Every directory handed to the three functions is a pathname in directory form (trailing /), including the root, so the shape is the same at every level. Returns nil.

The (constantly t) pair is the "walk everything" spelling:

$ cat walk.lisp
(uiop:collect-sub*directories "src/" (constantly t) (constantly t)
                              (lambda (dir) (print dir)))
$ rontolisp walk.lisp
#P"src/"
#P"src/main/"
#P"src/test/"

Backend support

All four backends, over the same one primitive directory uses.