Next: Create/Delete Dirs, Previous: File Names, Up: Files [Contents][Index]
A directory is a kind of file that contains other files entered under various names. Directories are a feature of the file system.
Emacs can list the names of the files in a directory as a Lisp list,
or display the names in a buffer using the ls
shell command. In
the latter case, it can optionally display information about each file,
depending on the options passed to the ls
command.
This function returns a list of the names of the files in the directory directory. By default, the list is in alphabetical order.
If full-name is non-nil
, the function returns the files’
absolute file names. Otherwise, it returns the names relative to
the specified directory.
If match-regexp is non-nil
, this function returns only
those file names that contain a match for that regular expression—the
other file names are excluded from the list. On case-insensitive
filesystems, the regular expression matching is case-insensitive.
If nosort is non-nil
, directory-files
does not sort
the list, so you get the file names in no particular order. Use this if
you want the utmost possible speed and don’t care what order the files
are processed in. If the order of processing is visible to the user,
then the user will probably be happier if you do sort the names.
(directory-files "~lewis") ⇒ ("#foo#" "#foo.el#" "." ".." "dired-mods.el" "files.texi" "files.texi.~1~")
An error is signaled if directory is not the name of a directory that can be read.
This is similar to directory-files
in deciding which files
to report on and how to report their names. However, instead
of returning a list of file names, it returns for each file a
list (filename . attributes)
, where attributes
is what file-attributes
would return for that file.
The optional argument id-format has the same meaning as the
corresponding argument to file-attributes
(see Definition of file-attributes).
This function expands the wildcard pattern pattern, returning a list of file names that match it.
If pattern is written as an absolute file name, the values are absolute also.
If pattern is written as a relative file name, it is interpreted
relative to the current default directory. The file names returned are
normally also relative to the current default directory. However, if
full is non-nil
, they are absolute.
This function inserts (in the current buffer) a directory listing for
directory file, formatted with ls
according to
switches. It leaves point after the inserted text.
switches may be a string of options, or a list of strings
representing individual options.
The argument file may be either a directory name or a file
specification including wildcard characters. If wildcard is
non-nil
, that means treat file as a file specification with
wildcards.
If full-directory-p is non-nil
, that means the directory
listing is expected to show the full contents of a directory. You
should specify t
when file is a directory and switches do
not contain ‘-d’. (The ‘-d’ option to ls
says to
describe a directory itself as a file, rather than showing its
contents.)
On most systems, this function works by running a directory listing
program whose name is in the variable insert-directory-program
.
If wildcard is non-nil
, it also runs the shell specified by
shell-file-name
, to expand the wildcards.
MS-DOS and MS-Windows systems usually lack the standard Unix program
ls
, so this function emulates the standard Unix program ls
with Lisp code.
As a technical detail, when switches contains the long
‘--dired’ option, insert-directory
treats it specially,
for the sake of dired. However, the normally equivalent short
‘-D’ option is just passed on to insert-directory-program
,
as any other option.
This variable’s value is the program to run to generate a directory listing
for the function insert-directory
. It is ignored on systems
which generate the listing with Lisp code.
Next: Create/Delete Dirs, Previous: File Names, Up: Files [Contents][Index]