如何从所有文件夹中获取文件列表(*。jpg)?
题
如何使用gimp中的脚本fu从所有文件夹中获取文件(*.jpg)列表?
(let* ((filelist (cadr (file-glob pattern 1)))
这仅从当前文件夹获取文件。
解决方案
这会有点复杂,但是可以做到。文件glob返回当前目录的文件列表 包括 子目录。因此,您可以使用该列表递归构建更多的球字符串,可以将其传递给File-Glob,依此类推。
(define separator "\\") ; I am using Windows
(define (all-files dir)
(let* ((patt (string-append dir separator "*"))
(files (cadr (file-glob patt 1))))
(append files (search-dirs files))))
(define (search-dirs dirs)
(if (null? dirs)
(list)
(append (all-files (head dirs)) (search-dirs (tail dirs)))))
这有效,但是很慢。也许您可以找到一种使其更快的方法?
顺便说一句,这将返回所有文件,而不仅仅是JPG。要使它仅返回JPG,请修改说“(附加文件(搜索dirs files)))”的行。而不是附加“文件”,而是只过滤JPG并仅附加这些。
不隶属于 StackOverflow