Emacs, how to get directory of current buffer?

Leo Ufimtsev picture Leo Ufimtsev · Jan 28, 2015 · Viewed 15.1k times · Source

In emacs there is buffer-file-name that gives the full path to a file. But is there a way to get only the directory of the file loaded in the current buffer?

Answer

Sandy picture Sandy · Nov 18, 2015

Sometimes default-directory for the current buffer may be set to something other than the current directory of the file the buffer is currently visiting, in which case the solution above wouldn't give what the asker was looking for.

In such cases, you can use the file-name-directory method, like so: (file-name-directory buffer-file-name)

Here is a link to the docs:

http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Components.html