Common Lisp - 如果路径名指向常规文件或目录怎么说?

hyp*_*r_w 6 common-lisp

是否可以"统计"文件并找到其文件类型 - 常规或目录?

小智 5

阅读Peter Seibel 的Practical Common Lisp书中关于可移植路径名库的章节。它是免费的。它有一个函数file-exists-p,当文件存在时返回一个路径名,如果不存在则返回nil。如果是目录,则返回的路径名将采用目录形式。他还提供了另一个函数来检查路径名是否确实是目录形式。

顺便说一句,整本书真的很值得一读,所以如果你还没有的话,请检查一下。

  • CL-FAD 库*是* Peter Seibel 的章节,打包供一般使用。DIRECTORY-EXISTS-P 函数完全符合您的描述。 (3认同)

小智 1

我认为有几种方法。probe-file然后检查返回的真实名称以确定它有目录名但没有文件名和类型应该这样做。例如对于目录

(pathname-name (probe-file filespec))

-> NIL
Run Code Online (Sandbox Code Playgroud)

  • 那是行不通的。目前尚不清楚“PROBE-FILE”是否适用于目录。还不清楚“pathname-name”是否为目录返回“NIL”。一般来说,Common Lisp 并未真正提供此功能,并且大多数实现都具有该功能。图书馆提供可移植的名称... (2认同)