Next: , Previous: Testing Accessibility, Up: Information about Files


25.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, named pipe, terminal, or other I/O device).