2011-10-18 7 views
7

Come posso ottenere un elenco di file (* .jpg) da tutte le cartelle, utilizzando Script-FU in GIMP?Come ottenere un elenco di file (*. Jpg) da tutte le cartelle?

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

Questo ottiene solo i file dalla cartella corrente.

+0

Script-Fu è TinyScheme, che è un interprete di schema molto limitato. Penso che non possa farlo. – ceving

+0

@Smirnov, dai un'occhiata alla mia risposta ... qualcuno finalmente ha capito la risposta alla tua domanda dopo tutti questi mesi! –

risposta

2

Sarà un po 'complicato, ma può essere fatto. L'elenco di file restituiti da file-glob per la directory corrente include le sottodirectory. Quindi puoi usare quell'elenco per creare ricorsivamente string più glob, che possono essere passati a 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 puoi trovare un modo per renderlo più veloce?

A proposito, restituisce tutti i file, non solo i file JPG. Per fare in modo che restituisca solo JPG, modifica la riga che dice "(aggiungi file (file search-dirs))". Piuttosto che aggiungere "file", filtra i JPG e aggiungi quelli solo.

Problemi correlati