Как получить список файлов (* .jpg) из всех папок? - PullRequest
7 голосов
/ 18 октября 2011

Как получить список файлов (* .jpg) из всех папок, используя Script-FU в GIMP?

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

Принимает файлы только из текущей папки.

1 Ответ

2 голосов
/ 23 января 2012

Это будет немного сложно, но это можно сделать. Список файлов, которые 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 и добавьте только эти.

...