Function: list-directory

list-directory is an interactive and byte-compiled function defined in files.el.gz.

Signature

(list-directory DIRNAME &optional VERBOSE)

Documentation

Display a list of files in or matching DIRNAME, a la ls.

DIRNAME is globbed by the shell if necessary. Prefix arg (second arg if noninteractive) means supply -l switch to ls. Actions controlled by variables list-directory-brief-switches and list-directory-verbose-switches.

View in manual

Probably introduced at or before Emacs version 1.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/files.el.gz
(defun list-directory (dirname &optional verbose)
  "Display a list of files in or matching DIRNAME, a la `ls'.
DIRNAME is globbed by the shell if necessary.
Prefix arg (second arg if noninteractive) means supply -l switch to `ls'.
Actions controlled by variables `list-directory-brief-switches'
and `list-directory-verbose-switches'."
  (interactive
   (let ((pfx current-prefix-arg))
     (list (read-file-name
            (if pfx "List directory (verbose): "
	      "List directory (brief): ")
	    nil default-directory
            (lambda (file)
              (or (file-directory-p file)
                  (insert-directory-wildcard-in-dir-p
                   (file-name-as-directory (expand-file-name file))))))
           pfx)))
  (let ((switches (if verbose list-directory-verbose-switches
		    list-directory-brief-switches))
	buffer)
    (or dirname (setq dirname default-directory))
    (setq dirname (expand-file-name dirname))
    (with-output-to-temp-buffer "*Directory*"
      (setq buffer standard-output)
      (buffer-disable-undo standard-output)
      (princ "Directory ")
      (princ dirname)
      (terpri)
      (with-current-buffer "*Directory*"
	(let ((wildcard (not (file-directory-p dirname))))
	  (insert-directory dirname switches wildcard (not wildcard)))))
    ;; Finishing with-output-to-temp-buffer seems to clobber default-directory.
    (with-current-buffer buffer
      (setq default-directory
	    (if (file-accessible-directory-p dirname)
		(file-name-as-directory dirname)
	      (file-name-directory (directory-file-name dirname)))))))