LispWorks' fast-directory-files
with fdf-handle-*
functions 看起来很有前途。LispWorks 手册中对目录页面中文件的快速访问说,
fast-directory-files提供了一种比directory更快的文件访问方式,尤其是在您需要基于简单特征(例如大小和访问时间)进行过滤,或者以比directory更复杂的方式基于名称进行过滤的情况下。
我试图了解如何使用它们,但我在文档中遇到了一些不透明,事实上我对 Common Lisp 还是很陌生。
举个例子,一个人希望获取文件的文件大小,使用fdf-handle-size
. 详细的手册页没有提供示例,而且文本看起来有点简洁。例如,
以下读者可以访问fdf-handle 。当在文件的完整路径上调用时,括号中命名的函数将返回相同的值:
fdf-handle-size返回文件的大小(以字节为单位)。
[ETC。]
笔记说,
fdf -handle只能在它被传递到的回调的动态范围内使用。
通过反复试验,我达到了这一点(当然是错误的):
CL-USER 1 > (let (file-size)
(fast-directory-files "/temp/a.txt"
#'(lambda (path handle)
(push (fdf-handle-size handle) file-size))))
("save.lisp" "a.txt" "a.lisp")
如何获得文件大小/temp/a.txt
?更重要的是,应该如何将 LispWorksfast-directory-files
与fdf-handle-*
一般函数一起使用?