This chapter describes the Emacs Lisp functions and variables to find, create, view, save, and otherwise work with files and file directories. A few other file-related functions are described in Buffers, and those related to backups and auto-saving are described in Backups and Auto-Saving.
Many of the file functions take one or more arguments that are file
names. A file name is actually a string. Most of these functions
expand file name arguments by calling
expand-file-name, so that
~ is handled correctly, as are relative file names (including
‘../’). See File Name Expansion.
In addition, certain magic file names are handled specially. For example, when a remote file name is specified, Emacs accesses the file over the network via an appropriate protocol (see Remote Files). This handling is done at a very low level, so you may assume that all the functions described in this chapter accept magic file names as file name arguments, except where noted. See Magic File Names, for details.
When file I/O functions signal Lisp errors, they usually use the
file-error (see Handling Errors). The error
message is in most cases obtained from the operating system, according
system-messages-locale, and decoded using coding system
locale-coding-system (see Locales).