歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

newLISP 遞歸訪問目錄樹

一個簡單的遞歸函數,可以遍歷目錄樹中的所有文件,傳遞另一個處理函數,該函數可以接受文件路徑作為參數,從而決定如何處理。

下面是調用例子:

#!/usr/bin/newlisp                                                                      

(load "file.lsp") (define (show-file file-path)   (println (string file-path ": " (file-info file-path)))           ) (FILE:recursive-access-dir "/opt/" show-file)

(exit)

recursive-access-dir就是遞歸函數, show-file是另一個函數,顯示了接收的文件路徑和file-info信息。

(context 'FILE)

(define (recursive-access-dir dir-path file-op)   (dolist (nde (directory dir-path {^[^.]}))     (if (directory? (append dir-path nde))         (recursive-access-dir (append dir-path nde "/") file-op)       (file-op (append dir-path nde)))))

注意:

正則表達式 ^[^.] 代表只查找不以.開頭的文件或者目錄,因此排除了. 和 ..

該遞歸算法是深度優先算法,一旦發現一個目錄,一定會將其下的所有路徑都遍歷完才會返回到開始, 然後才處理下一個兄弟目錄。

為Emacs配置newLISP開發環境 http://www.linuxidc.com/Linux/2013-01/78463.htm

newLISP做GitLab系統備份 http://www.linuxidc.com/Linux/2013-01/78464.htm

newLISP 遍歷目錄樹,清理編譯目錄 http://www.linuxidc.com/Linux/2013-08/88954.htm

newLISP 的詳細介紹:請點這裡
newLISP 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved