Как переместить файл в Lisp, используя rename-file

Каков наилучший способ переместить файл в Lisp независимым от реализации способом? Например, у меня есть файл изображения:

(setq oldpath #P"SERVER:PICTURES;TEMP;PHOTO.PNG")

и я хочу переместить его из каталога TEMP в каталог PICTURES. Кажется, это работает:

(setq newpath
  (make-pathname 
    :host (pathname-host oldpath) 
    :directory (butlast (pathname-directory oldpath)) 
    :name (pathname-name oldpath)
    :type (pathname-type oldpath)))

(rename-file oldpath newpath)

но есть ли более элегантный способ?

Спасибо, Дэвид


person johnsondavies    schedule 01.06.2015    source источник


Ответы (1)


Я обычно использую:

(make-pathname :defaults old-path
               :directory (butlast (pathname-directory oldpath)))

Аргумент :defaults гарантирует, что все соответствующие части старого пути будут скопированы.

person Rainer Joswig    schedule 01.06.2015
comment
Спасибо! Это было то, что я искал. - person johnsondavies; 01.06.2015