7

GIMPでScript-FUを使用して、すべてのフォルダーからファイルのリスト(* .jpg)を取得するにはどうすればよいですか?

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

これは、現在のフォルダーからのみファイルを取得します。

4

1 に答える 1

2

少し複雑になりますが、できます。file-globが現在のディレクトリに対して返すファイルのリストには、サブディレクトリが含まれています。したがって、そのリストを使用して、より多くの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を除外して、それらのみを追加します。

于 2012-01-23T01:42:36.183 に答える