【发布时间】:2012-02-27 19:14:38
【问题描述】:
有没有办法使用 common lisp 创建目录。我想先创建一个文件夹,然后将我的 .txt .png 文件放入其中。我知道首先我可以在外部创建文件夹,然后使用 with-open-file 等等在目录中创建我的文件。我想要的是一个通用的 lisp 解决方案。
【问题讨论】:
标签: directory lisp common-lisp
有没有办法使用 common lisp 创建目录。我想先创建一个文件夹,然后将我的 .txt .png 文件放入其中。我知道首先我可以在外部创建文件夹,然后使用 with-open-file 等等在目录中创建我的文件。我想要的是一个通用的 lisp 解决方案。
【问题讨论】:
标签: directory lisp common-lisp
(ensure-directories-exist "/path/name/")
【讨论】:
"/path/name"),这将创建/path,假设您想稍后创建一个名为name 的常规文件(非常适合内联使用;另请参见第二个)。另请参阅:hyperspec entry for ensure-directories-exist 和 relevant chapter in Practical Common Lisp book。
This page 似乎是一篇不错的文章,解释了 CL 需要解决的文件 I/O 问题的所有细微差别。
【讨论】:
假设您有多个同时运行的进程,它们有时可能需要排队等待无法并行运行的程序(资源)。然后创建目录可能是锁定资源的有效方法。 ensure-directories-exist 对此不好,因为它不是原子的。在这种情况下,我使用(在 sbcl 中)
(sb-unix:unix-mkdir "/name/of/directory" #o777)
【讨论】: