CLISP Files

Directory is not a file

CLISP has traditionally taken the view that a directory is a separate object and not a special kind of file, so whenever the standard says that a function operates on files without specifically mentioning that it also works on directories, CLISP SIGNALS an ERROR when passed a directory.

CLISP provides separate directory functions, such as EXT:DELETE-DIRECTORY, EXT:RENAME-DIRECTORY et al.

You can use DIRECTORY or EXT:PROBE-PATHNAME to figure out whether a given namestring refers to a file or a directory.

File functions

PROBE-FILE

FILE-AUTHOR

FILE-AUTHOR always returns NIL

DELETE-FILE

RENAME-FILE

Directory functions

EXT:PROBE-DIRECTORY

DIRECTORY

EXT:DIR

EXT:CD

EXT:DEFAULT-DIRECTORY

EXT:MAKE-DIRECTORY

EXT:DELETE-DIRECTORY

EXT:RENAME-DIRECTORY

Documentation

See CLISP implementation notes chapter 20

Generic functions

Function EXT:PROBE-PATHNAME figures out whether teh argument refers to an existing directory or an existing regular file, and returns 4 values if the filesystem object exists.

TRUENAME

EXT:ABSOLUTE-PATHNAME

FILE-WRITE-DATE

POSIX:FILE-SIZE

...if it does not exist, returns NIL