1

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

我目前正在使用 cygwin 在 Windows 7 中尝试这个,所以这可能会影响我的结果。我对 CLISP(以及整个 LISP)还很陌生,我目前正在尝试做的事情如下:

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

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

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

4

2 回答 2

5

请参阅 CLISP 实施说明,第 20.3.2 节

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

于 2011-03-12T11:50:20.030 回答
2

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

(directory
 (make-pathname :directory
                '(:absolute "cygdrive" "c" "Download" :wild)))
于 2011-03-12T11:56:01.497 回答