Go to the previous, next section.

Distinguishing Kinds of Files

This section describes how to distinguish directories and symbolic links from ordinary files.

Function: file-symlink-p filename

If filename is a symbolic link, the file-symlink-p function returns the file name to which it is linked. This may be the name of a text file, a directory, or even another symbolic link, or of no file at all.

If filename is not a symbolic link (or there is no such file), file-symlink-p returns nil.

(file-symlink-p "foo")
     => nil
(file-symlink-p "sym-link")
     => "foo"
(file-symlink-p "sym-link2")
     => "sym-link"
(file-symlink-p "/bin")
     => "/pub/bin"

Function: file-directory-p filename

This function returns t if filename is the name of an existing directory, nil otherwise.

(file-directory-p "~rms")
     => t
(file-directory-p "~rms/lewis/files.texi")
     => nil
(file-directory-p "~rms/lewis/no-such-file")
     => nil
(file-directory-p "$HOME")
     => nil
(file-directory-p
 (substitute-in-file-name "$HOME"))
     => t

Go to the previous, next section.