gb at clozure.com
Sun Sep 1 07:28:39 PDT 2002
On Sun, 1 Sep 2002, Sven Van Caekenberghe wrote:
> I found no simple way in ANSI common lisp to find out whether a file is
> a directory.
> In some old mcl documentation I found a function called directoryp.
> This function is part of openmcl, but is unimplemented (throws a break).
> Should it be implemented or removed ?
I vote for "implemented", if those are the only choices.
> I was using this implementation, but maybe it is too simple:
> (defun directory-p (filename)
> (let ((pathname (pathname filename)))
> (and (null (pathname-name pathname))
> (null (pathname-type pathname)))))
> This seems to work for my purposes on openmcl.
The function CCL:DIRECTORY-PATHNAME-P does pretty much what your
definition does (it'll return true in a few more cases.)
If one only wants to return true in those cases where the pathname
actually denotes a real directory (and sometimes wants to be able
to distinguish links to directories from actual directories), one
(defun directoryp (path &optional (resolve-links t))
(let* ((native-namestring (native-translated-namestring path)))
(eq :directory (ccl::%unix-file-kind native-namestring (not resolve-links)))))
I think that that'd work pretty reliably, though whether that's the best
interface might require some thought.
(Well, not -that- much thought. Certainly not another year's worth ...)
> Sven Van Caekenberghe - mailto:sven at beta9.be
> Beta Nine - software engineering - http://www.beta9.be
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
Openmcl-devel mailing list
Openmcl-devel at clozure.com
More information about the Openmcl-devel