Список каталогов в CLISP

Я пытался получить список всех файлов в каталоге в CLISP, но мне удалось получить только все файлы, не входящие в каталог, в каталоге.

В настоящее время я пробую это в Windows 7 с cygwin, так что это может повлиять на мои результаты. Я довольно новичок в CLISP (и в LISP в целом), и сейчас я пытаюсь сделать следующее:

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

Это успешно возвращает все файлы, не относящиеся к каталогу, в «C:\Download». Однако он не возвращает каталоги. Я искал повсюду, и все ссылки на Common Lisp указывают на использование «каталога», но мне кажется невозможным, что в Common Lisp (или, возможно, только в CLISP?) не существует способа обращения ко всем файлам в каталоге.

Любая помощь будет оценена по достоинству. Заранее спасибо!


person chamakits    schedule 12.03.2011    source источник


Ответы (2)


См. примечания по реализации CLISP, раздел 20.3.2:

«Если вам нужны все файлы и подкаталоги в текущем каталоге, вы должны использовать (NCONC (DIRECTORY "*/") (DIRECTORY "*"))».

person Xach    schedule 12.03.2011

В Common Lisp, что оказалось, возможно, неудачным решением, каталоги не являются файлами. Поэтому, чтобы получить список каталогов в вашем примере, вам нужен подстановочный знак во фрагменте каталога:

(directory
 (make-pathname :directory
                '(:absolute "cygdrive" "c" "Download" :wild)))
person Ramarren    schedule 12.03.2011