Go to the first, previous, next, last section, table of contents.


Buffer File Name

The buffer file name is the name of the file that is visited in that buffer. When a buffer is not visiting a file, its buffer file name is nil. Most of the time, the buffer name is the same as the nondirectory part of the buffer file name, but the buffer file name and the buffer name are distinct and can be set independently. See section Visiting Files.

Function: buffer-file-name &optional buffer
This function returns the absolute file name of the file that buffer is visiting. If buffer is not visiting any file, buffer-file-name returns nil. If buffer is not supplied, it defaults to the current buffer.

(buffer-file-name (other-buffer))
     => "/usr/user/lewis/manual/files.texi"

Variable: buffer-file-name
This buffer-local variable contains the name of the file being visited in the current buffer, or nil if it is not visiting a file. It is a permanent local, unaffected by kill-local-variables.

buffer-file-name
     => "/usr/user/lewis/manual/buffers.texi"

It is risky to change this variable's value without doing various other things. See the definition of set-visited-file-name in `files.el'; some of the things done there, such as changing the buffer name, are not strictly necessary, but others are essential to avoid confusing Emacs.

Variable: buffer-file-truename
This buffer-local variable holds the truename of the file visited in the current buffer, or nil if no file is visited. It is a permanent local, unaffected by kill-local-variables. See section Truenames.

Variable: buffer-file-number
This buffer-local variable holds the file number and directory device number of the file visited in the current buffer, or nil if no file or a nonexistent file is visited. It is a permanent local, unaffected by kill-local-variables. See section Truenames.

The value is normally a list of the form (filenum devnum). This pair of numbers uniquely identifies the file among all files accessible on the system. See the function file-attributes, in section Other Information about Files, for more information about them.

Function: get-file-buffer filename
This function returns the buffer visiting file filename. If there is no such buffer, it returns nil. The argument filename, which must be a string, is expanded (see section Functions that Expand Filenames), then compared against the visited file names of all live buffers.

(get-file-buffer "buffers.texi")
    => #<buffer buffers.texi>

In unusual circumstances, there can be more than one buffer visiting the same file name. In such cases, this function returns the first such buffer in the buffer list.

Command: set-visited-file-name filename
If filename is a non-empty string, this function changes the name of the file visited in current buffer to filename. (If the buffer had no visited file, this gives it one.) The next time the buffer is saved it will go in the newly-specified file. This command marks the buffer as modified, since it does not (as far as Emacs knows) match the contents of filename, even if it matched the former visited file.

If filename is nil or the empty string, that stands for "no visited file". In this case, set-visited-file-name marks the buffer as having no visited file.

When the function set-visited-file-name is called interactively, it prompts for filename in the minibuffer.

See also clear-visited-file-modtime and verify-visited-file-modtime in section Buffer Modification.

Variable: list-buffers-directory
This buffer-local variable records a string to display in a buffer listing in place of the visited file name, for buffers that don't have a visited file name. Dired buffers use this variable.


Go to the first, previous, next, last section, table of contents.