;; get the dir path part
(file-name-directory "/home/joe/xyz.txt") ; "/home/joe/"
;; get filename part
(file-name-nondirectory "/home/joe/xyz.txt") ; "xyz.txt"
;; get filename's extension
(file-name-extension "/home/joe/cat.txt.jpg") ; "jpg"
;; get filename without extension
(file-name-sans-extension "/home/joe/cat.txt.jpg") ; "/home/joe/cat.txt"
;; get relative path
(file-relative-name "/home/joe/b/cat.jpg" "/home/joe/") ; "b/cat.jpg"
;; get full path
(expand-file-name "test.el")
;; sample output
;; "/home/joe/misc/emacs/test.el"