[Openmcl-devel] #'directoryp

Gary Byers gb at clozure.com
Sun Sep 1 14:28:39 UTC 2002



On Sun, 1 Sep 2002, Sven Van Caekenberghe wrote:

> Hi,
>
> 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
might try:

(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
> http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel
>
>


_______________________________________________
Openmcl-devel mailing list
Openmcl-devel at clozure.com
http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list