Pregunta

¿Cómo obtengo una lista de archivos (*.jpg) de todas las carpetas, usando script-fu en GIMP?

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

Esto solo obtiene archivos de la carpeta actual.

¿Fue útil?

Solución

Será un poco complicado, pero se puede hacer. La lista de archivos que se devuelve el archivo de archivos para el directorio actual incluir subdirectorios. Por lo tanto, puede usar esa lista para construir recursivamente más cadenas de globas, que se pueden pasar a File-GLOB, y así sucesivamente.

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

Esto funciona, pero es lento. ¿Quizás puedas encontrar una manera de hacerlo más rápido?

Por cierto, esto devuelve todos los archivos, no solo JPG. Para hacer que devuelva solo JPGS, modifique la línea que dice "(archivos de adjunte (archivos de búsqueda-dirs))". En lugar de agregar "archivos", filtre los JPG y agregue solo esos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top