Most Emacs Lisp file-manipulation functions get errors when used on
files that are directories. For example, you cannot delete a directory
with delete-file
. These special functions exist to create and
delete directories.
This command creates a directory named dirname. If
parents is non-nil
, as is always the case in an
interactive call, that means to create the parent directories first,
if they don’t already exist.
As a function, make-directory
returns non-nil
if dirname
already exists as a directory and parents is non-nil
,
and returns nil
if it successfully created dirname.
mkdir
is an alias for this.
This command creates an empty file named filename.
As make-directory
, this command creates parent directories
if parents is non-nil
.
If filename already exists, this command signals an error.
This command copies the directory named dirname to newname. If newname is a directory name, dirname will be copied to a subdirectory there. See Directory Names.
It always sets the file modes of the copied files to match the corresponding original file.
The third argument keep-time non-nil
means to preserve the
modification time of the copied files. A prefix arg makes
keep-time non-nil
.
The fourth argument parents says whether to create parent directories if they don’t exist. Interactively, this happens by default.
The fifth argument copy-contents, if non-nil
, means to
copy the contents of dirname directly into newname if the
latter is a directory name, instead of copying dirname into
it as a subdirectory.
This command deletes the directory named dirname. The function
delete-file
does not work for files that are directories; you
must use delete-directory
for them. If recursive is
nil
, and the directory contains any files,
delete-directory
signals an error.
If recursive is non-nil
, there is no error merely because the
directory or its files are deleted by some other process before
delete-directory
gets to them.
delete-directory
only follows symbolic links at the level of
parent directories.
If the optional argument trash is non-nil
and the
variable delete-by-moving-to-trash
is non-nil
, this
command moves the file into the system Trash instead of deleting it.
See Miscellaneous File Operations in The GNU
Emacs Manual. When called interactively, trash is t
if
no prefix argument is given, and nil
otherwise.