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 Unix syntax; but they always return Unix syntax. This enables Lisp programs to specify file names in Unix syntax and work properly on all systems without change.1
 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.