如何使用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并仅附加这些。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top