Clozure Common Lisp - файл-существует-р не определен

Я получаю сообщение об ошибке "Неопределенная функция FILE-EXISTS-P, вызываемая с аргументами..." при вызове (file-существующие-p "somepath") в Clozure Common Lisp, но везде, где я смотрю, кажется, что эта функция должна быть доступна. Я даже вижу это при использовании Mx по поводу.

Я использую LispBox для Windows.

Кто-нибудь имеет представление о том, что может быть не так или может предложить процесс, с помощью которого я могу попытаться выяснить это?

1 ответ

Решение

FILE-EXISTS-P не является стандартной функцией Common Lisp или специфической функцией Clozure Common Lisp.

Вместо этого вы можете использовать стандартную функцию PROBE-FILE (см. Руководство), чтобы проверить, существует ли файл:

CL-USER> (probe-file "not-existant-file.lisp")
NIL
CL-USER> (probe-file "/Users/myname/temp.lisp")
#P"/Users/myname/temp.lisp"

Обратите внимание, что в стандарте не определен результат применения функции к каталогу, в то время как реализация CCL (по крайней мере, в некоторых системах) правильно проверяет также, существует ли каталог:

CL-USER> (probe-file "/Users/myname/")
#P"/Users/myname/"
Другие вопросы по тегам