Directory 如何在common lisp中删除目录

Directory 如何在common lisp中删除目录,directory,common-lisp,Directory,Common Lisp,要删除Common Lisp中的文件,我可以执行以下操作: (delete-file "c:\\path\\to\\file") 但由于某些原因,我无法找到如何删除目录。没有删除目录,当我将目录路径传递给删除文件时,我得到: couldn't delete c:\path\to\folder: Unknown error [Condition of type SB-INT:SIMPLE-FILE-ERROR] 谷歌搜索也无济于事 我正在Windows上使用Steel Banks Com

要删除Common Lisp中的文件,我可以执行以下操作:

(delete-file "c:\\path\\to\\file")
但由于某些原因,我无法找到如何删除目录。没有
删除目录
,当我将目录路径传递给
删除文件
时,我得到:

couldn't delete c:\path\to\folder: Unknown error
   [Condition of type SB-INT:SIMPLE-FILE-ERROR]
谷歌搜索也无济于事


我正在Windows上使用Steel Banks Common Lisp,安装时使用Lispstick。

Google with
Common Lisp delete directory
建议我立即删除。我想它可能有用(但我从未尝试过)

我自己找到了解决方案。我查看了(在其他答案中提到的),发现它基本上对不同的公共Lisp实现使用了不同的扩展。因为我使用的是Steel Banks Common Lisp,所以我的解决方案是:

(sb-ext:delete-directory "c:\\path\\to\\folder\\")

对于大多数其他实现,您基本上必须将
sb ext
与相关实现的扩展包名称交换。

Uiop
随ASDF 3提供,并具有
delete empty directory
delete directory tree


请务必使用这种包装器库以实现可移植性。

是的,我看到了它,但我认为像CL这样的大型语言必须能够在不使用第三方库的情况下删除目录:)它不需要。文件和目录的概念非常依赖于系统,在CommonLisp标准化时更是如此。因此,做这些事情的语义就留给实现了。这会不会扼杀您使用
cl-fad
获得的兼容性?因此,您现在不再依赖可移植性库,而是依赖手动替换步骤来为不同的cl实现安装软件。这真的是一场胜利吗?