Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / 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.htmnewLISP做GitLab系统备份 http://www.linuxidc.com/Linux/2013-01/78464.htmnewLISP 遍历目录树,清理编译目录 http://www.linuxidc.com/Linux/2013-08/88954.htmnewLISP 的详细介绍:请点这里
newLISP 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-08/106028.htm