【问题标题】:How to get a list of files (*. jpg) from all folders?如何从所有文件夹中获取文件列表(*.jpg)?
【发布时间】:2011-12-10 00:13:38
【问题描述】:

如何使用 GIMP 中的 Script-FU 从所有文件夹中获取文件列表 (*.jpg)?

(let* ((filelist (cadr (file-glob pattern 1)))

这只会从当前文件夹中获取文件。

【问题讨论】:

  • Script-Fu 是 TinyScheme,是一个非常有限的 Scheme 解释器。我认为它做不到。
  • @Smirnov,看看我的回答……这些个月后,终于有人找到了你问题的答案!

标签: scheme gimp script-fu


【解决方案1】:

这会有点复杂,但可以做到。 file-glob 为当前目录返回的文件列表包括 子目录。因此,您可以使用该列表递归地构建更多 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,请修改显示“(附加文件(搜索目录文件))”的行。与其附加“文件”,不如过滤掉 JPG 文件并仅附加这些文件。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2014-01-21
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多