Next: , Previous: , Up: Information about Files   [Contents][Index]


35.6.2 Distinguishing Kinds of Files

This section describes how to distinguish various kinds of files, such as directories, symbolic links, and ordinary files.

Function: file-symlink-p filename

If the file 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 it may be a nonexistent file name.

If the file 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
Function: file-regular-p filename

This function returns t if the file filename exists and is a regular file (not a directory, symbolic link, named pipe, terminal, or other I/O device).