Come ottenere un elenco di file (*. Jpg) da tutte le cartelle?
Domanda
Come faccio a ottenere un elenco di file (* .jpg) da tutte le cartelle, utilizzando script-fu in GIMP?
(let* ((filelist (cadr (file-glob pattern 1)))
Questo diventa solo i file dalla cartella corrente.
Soluzione
Sarà un po 'complicato, ma può essere fatto. L'elenco dei file che i rendimenti di file-glob per la directory corrente include sottodirectory. Così si può utilizzare tale elenco per costruire ricorsivamente più glob stringhe, che possono essere passati al file glob, e così via.
(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)))))
Questo funziona, ma è lento. Forse si può trovare un modo per renderlo più veloce?
Tra l'altro, questo restituisce tutti i file, non solo JPG. Per farla tornare solo JPG, modificare la riga che dice "(file file append (search-dirs))". Piuttosto che aggiungendo "file", filtrare i file JPG e le accoda solo.