如何从所有文件夹中获取文件(*.jpg)列表?

发布于 2024-12-10 06:33:18 字数 147 浏览 0 评论 0原文

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

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

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

How do I get a list of files (*.jpg) from all folders, using Script-FU in GIMP?

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

This only gets files from the current folder.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

∝单色的世界 2024-12-17 06:33:18

这会有点复杂,但可以做到。 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,请修改“(append files (search-dirs files))”行。不要附加“文件”,而是过滤掉 JPG 并仅附加它们。

It will be a bit complicated, but it can be done. The list of files which file-glob returns for the current directory includes subdirectories. So you can use that list to recursively build more glob strings, which can be passed to file-glob, and so on.

(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)))))

This works, but it is slow. Perhaps you can find a way to make it faster?

By the way, this returns all files, not just JPGs. To make it return only JPGs, modify the line which says "(append files (search-dirs files))". Rather than appending "files", filter out the JPGs and append those only.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文