在LISP中列出目录

时间:2011-03-12 11:00:21

标签: lisp directory common-lisp clisp

我一直在尝试查看CLISP中目录中所有文件的列表,但我只能获取目录中的所有非目录文件。

我目前正在Windows 7中使用cygwin进行此操作,因此可能会影响我的结果。我对CLISP(以及所有人的LISP)都很陌生,而我目前正在尝试做的事情如下:

(directory (make-pathname :directory
'(:absolute "cygdrive" "c" "Download")
:name :wild))

这成功返回“C:\ Download”中的所有非目录文件。但是,它不会返回目录。我已经搜遍了所有Common Lisp引用指向使用“目录”,但似乎不可能对我来说,没有Common Lisp(或者只是CLISP?)方式来解决目录中的所有文件。

任何帮助将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:5)

请参阅CLISP实施说明section 20.3.2

“如果您想要当前目录中的所有文件和子目录,则应使用(NCONC (DIRECTORY "*/") (DIRECTORY "*"))。”

答案 1 :(得分:2)

在Common Lisp中,结果可能是一个不幸的决定,目录不是文件。因此,要获取示例中的目录列表,您需要在目录片段中使用通配符:

(directory
 (make-pathname :directory
                '(:absolute "cygdrive" "c" "Download" :wild)))