lisp - 如何使用重命名文件在 Lisp 中移动文件

标签 lisp common-lisp pathname

在 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)

但是有没有更优雅的方式呢?

谢谢,大卫

最佳答案

我通常使用:

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

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

关于lisp - 如何使用重命名文件在 Lisp 中移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578419/

相关文章:

scheme - 模拟 scheme 在 common lisp 中定义

lisp - 为什么将 "(null x)"替换为 "(null (cdr x))"会使此代码有效?

common-lisp - 如何在 Common Lisp 中搜索带有通配符的文件?

java - 如何从 Java JAR 文件中获取资源/文件的路径

lisp - 在没有明确提及的情况下永久改变变量?

lisp - 如何替换 Common Lisp 中的运行函数?

python - Common Lisp——列表拆包? (类似于 Python)

emacs - 测试点是否在匹配引号之间(emacs lisp)

haskell - s-expr 打印功能中的错误

java - 导出时如何将自己的音频添加到jar文件