CL-FADサンプル¶
- published:
2011-12-10
- created:
2011-12-10
概要¶
CL-FAD は Common Lisp で ディレクトリやパス関連の判定を簡単にするためのライブライです。
簡単な物なら自作しても問題ないですが、汎用性をもたせるなら利用してしまった方が早いです。
サイト¶
インストール¶
Quicklisp を利用します。
;; 検索
(ql:system-apropos "cl-fad")
;; インストール
(ql:quickload "cl-fad")
Function一覧¶
directory-pathname-p
pathname-as-directory
pathname-as-file
file-exists-p
directory-exists-p
list-directory
walk-directory
delete-directory-and-files
copy-file
copy-stream
利用方法¶
list-directory を利用して、ディレクトリの内容一覧を表示してみます。
;; list-directoryだけ読み込んで実行してみます
(import '(cl-fad:list-directory))
;; ディテクトリを指定します
(list-directory #p"~/.emacs.d")
簡単です。
全部を読み込む場合は 'require' を利用します。
;; require
(require :cl-fad)
;; namespace が必要です
(cl-fad:list-directory #p"~/.emacs.d")
directory-pathname-p は NIL か フルパスを返します
(cl-fad:directory-pathname-p "~/.emacs.d/")
;; p#"/path/to/.emacs.d/"
pathname-as-directory は 引数をディレクトリとしてパス形式に変換します
(cl-fad:pathname-as-directory "a")
;; p#"a/"
pathname-as-file は 引数をファイルとしてパス形式に変換します
(cl-fad:pathname-as-directory "a/")
;; p#"a"
file-exists-p はファイルの存在チェック
(cl-fad:file-exists-p "~/.emacs.d/")
;; #p"/path/to/.emacs.d/"
directory-exists-p はディレクトリ存在チェック
(cl-fad:directory-exists-p "~/.emacs.d/")
;; #p"/path/to/.emacs.d/"
walk-directory はディレクトリ内を再帰的に表示します。パスと関数を渡す必要があります
(cl-fad:walk-directory
#p"~/.emacs.d/site-start.d"
(lambda (file)
;; ファイルで拡張子 el な物だけ表示
(when (string-equal (pathname-type file) "el")
(fresh-line)
(princ file))))
delete-directory-and-files はディレクトリ、ファイルを削除します
;; サンプル無し
copy-file はファイルをコピーします。デフォルトはコピー先を上書きしません(NIL)
(cl-fad:copy-file "~/work/hoge.txt" "~/work/hoge2.txt")
copy-stream はストリームをコピーします
;; サンプル無し
以上です。