Function: tramp-smb-handle-directory-files

tramp-smb-handle-directory-files is a byte-compiled function defined in tramp-smb.el.gz.

Signature

(tramp-smb-handle-directory-files DIRECTORY &optional FULL MATCH NOSORT COUNT)

Documentation

Like directory-files for Tramp files.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp-smb.el.gz
(defun tramp-smb-handle-directory-files
  (directory &optional full match nosort count)
  "Like `directory-files' for Tramp files."
  (unless (file-exists-p directory)
    (tramp-compat-file-missing (tramp-dissect-file-name directory) directory))
  (let ((result (mapcar #'directory-file-name
			(file-name-all-completions "" directory))))
    ;; Discriminate with regexp.
    (when match
      (setq result
	    (delete nil
		    (mapcar (lambda (x) (when (string-match-p match x) x))
			    result))))

    ;; Sort them if necessary.
    (unless nosort
      (setq result (sort result #'string-lessp)))

    ;; Return count number of results.
    (when (and (natnump count) (> count 0))
      (setq result (nbutlast result (- (length result) count))))

    ;; Prepend directory.
    (when full
      (setq result
	    (mapcar
	     (lambda (x) (format "%s/%s" (directory-file-name directory) x))
	     result)))

    result))