2011-10-18 146 views
7

如何在GIMP中使用Script-FU從所有文件夾獲取文件列表(* .jpg)?如何從所有文件夾中獲取文件列表(*。jpg)?

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

這隻從當前文件夾獲取文件。

+0

Script-Fu是TinyScheme,它是一個非常有限的Scheme解釋器。我認爲它不能這樣做。 – ceving

+0

@Smirnov,看看我的答案......有人終於在這幾個月後想出了你的問題的答案! –

回答

2

它會有點複雜,但它可以做到。當前目錄的文件列表返回的文件列表包括子目錄。因此,您可以使用該列表遞歸地構建更多的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,請修改「(追加文件(search-dirs文件))」的行。而不是追加「文件」,過濾掉JPG並追加這些文件。

相關問題