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に登録する このエントリーを Tumblr する このエントリーに Twitter 経由でコメントする
以下はゲストコメント可能です。名前とメールアドレスは任意の物を入力していただいてかまいません。
blog comments powered by Disqus

このページの先頭へ

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