A pathname
- это структура, представляющая имя пути с использованием таких компонентов, как диск , хост , каталог , имя ,и т.д. См. здесь для получения более подробной информации.
Вы создаете pathname
, используя make-pathname
функцию с :directory
, :name
и другими ключевыми словами, и функция возвращает объектвведите pathname
:
CL-USER> (defvar p (make-pathname :directory '(:absolute "home" "test" "docs")))
CL-USER> #P"/home/test/docs/"
Функция merge-pathnames
, как задокументировано здесь , завершает отсутствующие компоненты pathname , указанные с теми из default-pathname :
CL-USER> (merge-pathnames p "tada.txt")
CL-USER> #P"/home/test/docs/tada.txt"
Редактировать: он не работает для вас, потому что вы создаете путь с помощью :name
, который задает имя файла (без расширения или :type
).Поэтому, когда вы вызываете merge-pathnames
, он не находит отсутствующий компонент в своем пути, потому что "cgi-bin /" указан как :name
(имя файла), и вы уже получили имя файла в "nav.py".