[LISP]请问如何遍历指定文件夹下的所有子文件夹
<FONT face=Simsun size=2>编一个程序,工作过程如下<BR><BR>1。用户输入指定文件夹名称<BR>2。autocad自动进入该文件夹内的所有子文件夹,子子文件夹。。。<BR>3。逐个进入子文件夹(子子文件夹)后,对文件夹内的dwg图片进行操作<BR><BR>以上的第二步请问如何实现?是否必须用vl-directory-files加循环的办法?<BR>有没有现成的程序实现这个功能?<BR><BR>请高手指点,谢谢</FONT> 可以的,用2个不同的文件夹函数循环 我怎么也循环不出来呀,请赐教! <P>最好用递归。</P><P>写了个样例: </P> ;;获取指定文件夹下的所有子文件夹
;; (xdl-fl-getfolders "c:")
;; (xdl-fl-getfolders "C:\\许数据")
(defun xdl-fl-getfolders (path / fls result)
(if (not (wcmatch path "*`."))
(setq fls (vl-remove-if-not
'(lambda (x) (vl-file-directory-p x))
(mapcar '(lambda (p) (strcat path "\\" p))
(vl-directory-files path)
)
)
)
)
(if fls
(setq fls (mapcar '(lambda (f / ff)
(if (not result) (setq result '()))
(if (setq ff (xdl-fl-getfolders f))
(setq result (append ff result))
(setq result (cons f result))
)
)
(vl-remove-if
'(lambda (p) (wcmatch p "*`."))
fls
)
)
)
)
(if result
(append (list path) result)
(list path)
)
)
页:
[1]