CL-FADサンプル

更新日:2011年12月10日()

概要

CL-FAD は Common Lisp で ディレクトリやパス関連の判定を簡単にするためのライブライです。

簡単な物なら自作しても問題ないですが、汎用性をもたせるなら利用してしまった方が早いです。

インストール

Quicklisp を利用します。

;; 検索
(ql:system-apropos "cl-fad")
;; インストール
(ql:quickload "cl-fad")

Function一覧

  1. directory-pathname-p
  2. pathname-as-directory
  3. pathname-as-file
  4. file-exists-p
  5. directory-exists-p
  6. list-directory
  7. walk-directory
  8. delete-directory-and-files
  9. copy-file
  10. 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 はストリームをコピーします

;; サンプル無し

以上です。

Author: sakito Updated: 2011年12月10日() category: /cl Permalink: Permalink
このエントリーをはてなブックマークする はてなブックマーク数 このエントリーをdel.icio.usに登録する このエントリーをlivedoorクリップする livedoorクリップ数 このエントリーを Google Bookmark に追加する このエントリーを Tumblr する このエントリーを Blogger する このエントリーに FriendFeed 経由でコメントする このエントリーに Twitter 経由でコメントする このエントリーに Wassr 経由でコメントする このエントリーに identi.ca 経由でコメントする このエントリーに Buzz 経由でコメントする
以下はゲストコメント可能です。名前とメールアドレスは任意の物を入力していただいてかまいません。
blog comments powered by Disqus

このページの先頭へ

copyright (CC-by) 1999-2012 sakito
Powered by pyblosxom. Theme: TheBuckmaker.