File and Directory

Table of Contents

Function on File

(rename-file "/home/joe/test1.txt" "/home/joe/test2.txt")
(copy-file "/home/joe/test1.txt" "/home/joe/test2.txt")
(delete-file "/home/joe/test2.txt")

Function on Dir

(copy-directory "/home/joe/stuff" "/home/joe/stuff-backup")
;; delete a whole dir. new in emacs 23
(delete-directory "/home/joe/stuff" t)

Function on Path

;; 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"