Большинство функций манипулирования файлами Emacs Lisp выдают ошибки при работе с
файлами, которые являются каталогами. Например, вы не можете удалить каталог
с помощью delete-file. Эти специальные функции существуют для
создания и удаления каталогов.
Эта команда создает каталог с именем dirname. Если
parents не равен nil, как всегда происходит при
интерактивном вызове, это означает создание родительских каталогов в первую
очередь, если они еще не существуют.
Как функция, make-directory возвращает не-nil,
если dirname уже существует как каталог, и parents
не равен nil, и возвращает nil, если он
успешно создал dirname.
mkdir является псевдонимом для этой команды.
Эта команда создает пустой файл с именем filename.
Как make-directory, эта команда создает родительские каталоги,
если parents не равен nil.
Если filename уже существует, эта команда сигнализирует об
ошибке.
Эта команда копирует каталог с именем dirname в newname. Если newname является именем каталога, dirname будет скопирован во вложенный каталог там. См. Имена каталогов.
Она всегда устанавливает режимы файлов скопированных файлов в соответствии с соответствующим исходным файлом.
Третий аргумент keep-time не равен nil
означает сохранение времени модификации скопированных файлов. Префиксный
аргумент делает keep-time не равным nil.
Четвертый аргумент parents указывает, следует ли создавать родительские каталоги, если они не существуют. В интерактивном режиме это происходит по умолчанию.
Пятый аргумент copy-contents, если он не равен nil, означает копирование содержимого dirname
непосредственно в newname, если последнее является
именем каталога, вместо копирования dirname в него
как во вложенный каталог.
Эта команда удаляет каталог с именем dirname.
Функция delete-file не работает для файлов, которые
являются каталогами; для них вы должны использовать delete-directory.
Если recursive равен nil, и каталог
содержит какие-либо файлы, delete-directory сигнализирует об
ошибке.
Если recursive не равен nil, нет ошибки
просто потому, что каталог или его файлы были удалены какой-либо другой
процесс до того, как delete-directory до них доберется.
delete-directory следует только символическим ссылкам на
уровне родительских каталогов.
Если необязательный аргумент trash не равен nil, а переменная delete-by-moving-to-trash
не равна nil, эта команда перемещает файл в системную
Корзину вместо удаления.
См. Различные операции с файлами в
Руководстве GNU Emacs. При интерактивном вызове trash
равен t, если не указан префиксный аргумент, и nil
в противном случае.