Как получить список файлов (*. JPG) из всех папок?

StackOverflow https://stackoverflow.com/questions/7806198

  •  25-10-2019
  •  | 
  •  

Вопрос

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

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

Это получает только файлы из текущей папки.

Это было полезно?

Решение

Это будет немного сложно, но это можно сделать. Список файлов, который файл-клетка возвращает для текущего каталога включает подкатания. Таким образом, вы можете использовать этот список, чтобы рекурсивно построить больше строк глобуса, которые могут быть переданы в файл-глоба, и так далее.

(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, измените строку, которая говорит «(добавление файлов (файлы search-dirs))». Вместо того, чтобы добавлять «файлы», отфильтроровать JPG и добавить только их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top