(rontolisp) docs
← Functions

pathname-directory

(pathname-directory pathname)

The directory component of a namestring, as Common Lisp's list: :absolute or :relative followed by one component per directory level. A namestring with no directory part answers nil.

It is component-for-component the INVERSE of what make-pathname builds, so the special levels come back as the keywords they were given as: .. is :up, * is :wild and ** is :wild-inferiors.

Takes a pathname or a namestring; the split is pure string work on the namestring -- nothing is read from the filesystem and a nonexistent path answers just the same. It pairs with directory: a walk uses it to decide what to do with each entry it was handed.

(pathname-directory "a/b/c.txt") is (:RELATIVE "a" "b"), (pathname-directory "c.txt") is NIL, (pathname-directory "/") is (:ABSOLUTE), and (pathname-directory "/a/**/x.lisp") is (:ABSOLUTE "a" :WILD-INFERIORS).

Backend support

All four backends -- one definition in rontolisp source over primitives every backend has.