Files are generally referred to by their names, in Emacs as elsewhere. File names in Emacs are represented as strings. The functions that operate on a file all expect a file name argument.
In addition to operating on files themselves, Emacs Lisp programs often need to operate on file names; i.e., to take them apart and to use part of a name to construct related file names. This section describes how to manipulate file names.
The functions in this section do not actually access files, so they can operate on file names that do not refer to an existing file or directory.
On MS-DOS and MS-Windows, these functions (like the function that actually operate on files) accept MS-DOS or MS-Windows file-name syntax, where backslashes separate the components, as well as POSIX syntax; but they always return POSIX syntax. This enables Lisp programs to specify file names in POSIX syntax and work properly on all systems without change.15
|• File Name Components||The directory part of a file name, and the rest.|
|• Relative File Names||Some file names are relative to a current directory.|
|• Directory Names||A directory’s name as a directory is different from its name as a file.|
|• File Name Expansion||Converting relative file names to absolute ones.|
|• Unique File Names||Generating names for temporary files.|
|• File Name Completion||Finding the completions for a given file name.|
|• Standard File Names||If your package uses a fixed file name, how to handle various operating systems simply.|
In MS-Windows versions of Emacs compiled for the Cygwin
environment, you can use the functions
cygwin-convert-file-name-from-windows to convert between the
two file-name syntaxes.