Most Emacs Lisp file-manipulation functions get errors when used on
files that are directories. For example, you cannot delete a directory
delete-file. These special functions exist to create and
make-directorydirname &optional parents ¶
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 if it successfully created dirname.
mkdir is an alias for this.
make-empty-filefilename &optional parents ¶
This command creates an empty file named filename.
make-directory, this command creates parent directories
if parents is non-
If filename already exists, this command signals an error.
copy-directorydirname newname &optional keep-time parents copy-contents ¶
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
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.
delete-directorydirname &optional recursive trash ¶
This command deletes the directory named dirname. The function
delete-file does not work for files that are directories; you
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
If the optional argument trash is non-
nil and the
delete-by-moving-to-trash is non-
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
no prefix argument is given, and