2015-06-01 94 views
2

以独立于实现的方式移动Lisp中文件的最佳方式是什么?例如,我有一个图像文件:如何使用重命名文件在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) 

但有没有更优雅的方式?

谢谢,大卫

回答

4

我通常使用:

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

:defaults参数可以确保旧路径的所有相关部分被复制过来。

+0

谢谢!那正是我正在寻找的。 – johnsondavies