相关疑难解决方法(0)

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

我不满意找到匹配字符串的文件,如下所示:

(remove-if-not (lambda (it)
                   (search "wildcard" (namestring it)))
               (uiop:directory-files "./"))
;; I'll ignore case with str:contains?
;; https://github.com/vindarel/cl-str
Run Code Online (Sandbox Code Playgroud)

如何用unix风格的通配符搜索文件?

如果它不是内置的,我会喜欢uiop的解决方案.也许有Osicatcl-fad(它似乎不是这样,文档经常说"非野性路径名").

如果可以使用双通配符以递归方式遍历目录(./**/*.jpg),则可以获得奖励.

编辑:我已经试过的变种(directory #p"./**/*.jpg"),它返回nil :(也试过#p".*jpg",#p"./.*jpg"...

(wild-pathname-p (pathname "*.jpg"))
(:WILD :WILD-INFERIORS)


(make-pathname :name :wild :type "jpg")
#P"*.jpg"
Run Code Online (Sandbox Code Playgroud)

以下通过jpg扩展获取文件,但它还不是一个合适的通配符:

(directory *)
(#P"/home/vince/cl-cookbook/AppendixA.jpg"
 #P"/home/vince/cl-cookbook/AppendixB.jpg"
 #P"/home/vince/cl-cookbook/AppendixC.jpg")
Run Code Online (Sandbox Code Playgroud)

关于路径名的文档和make-pathname:http://gigamonkeys.com/book/files-and-file-io.html(没有提到通配符)

wildcard common-lisp pathname

4
推荐指数
2
解决办法
439
查看次数

显示当前目录内容的便携方式

restart-case我想在丢失输入文件期间向用户提供附加信息。

有没有一种便携式方法可以打印当前目录中的文件?

common-lisp

2
推荐指数
1
解决办法
1111
查看次数

标签 统计

common-lisp ×2

pathname ×1

wildcard ×1