2009/10/20

[Gauche] file.util

こんなに良い読み物があるじゃないか。といまさらリファレンスの存在を知るなどする。プログラミング言語を勉強するのに仕様とリファレンスに目も通さないで良いのは小学生までだよねー。ま、気長に。

 

これはと思ったものをメモがてら。

(use file.util)

 

directory-list

(directory-list "d://Test")
; -> ("." ".." "Development" "Temp" "Test")


(directory-list "d://Test" :add-path? #t)
; -> ("d:\\\\Test\\." "d:\\\\Test\\.." "d:\\\\Test\\Development" "d:\\\\Test\\Temp" "d:\\\\Test\\Test")


(directory-list "d://Test" :add-path? #t :children? #t)
; -> ("d:\\\\Test\\Development" "d:\\\\Test\\Temp" "d:\\\\Test\\Test")


(directory-list "d://Test//development//scheme" :children? #t
                :filter (lambda (e)
                          (eq? (file-type e) 'directory)))
; -> ("arc3")

 

directory-fold

(use srfi-13) ;; string-suffix?


; lister -> directory-lister
(directory-fold "d://test"
                (lambda (entry result)
                  (if (string-suffix? ".scm" entry)
                      (cons entry result)
                      result))
                '())
; -> (ファイル名が".scm"で終わるファイルのリスト)

これすごく便利そう。すげーな。これあれば何でもいけるじゃないですか。

 

;; create-directory*
(make-directory* "d://test//test2//test3//test4")
; -> #t

 

;; delete-directory
(remove-directory* "d://test//test2")
; -> #t

 

(sys-dirname "d://Test")
; -> "d:\\"


(sys-basename "d://Test//development")
; -> "development"


(file-type "d://Test//development")
; -> directory


(file-exists? "d://Test//development//scheme")
; -> #t

0 件のコメント:

コメントを投稿