すべてのフォルダーからファイル(*。JPG)のリストを取得するにはどうすればよいですか?
質問
GIMPでScript-Fuを使用して、すべてのフォルダーからファイル(*.jpg)のリストを取得するにはどうすればよいですか?
(let* ((filelist (cadr (file-glob pattern 1)))
これは、現在のフォルダーからファイルのみを取得します。
解決
少し複雑になりますが、実行できます。現在のディレクトリに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だけでなく、すべてのファイルを返します。 jpgsのみを返すには、「(seart-dirs files))と書かれた行を変更します。 「ファイル」を追加するのではなく、JPGを除外してそれらのみを追加します。
所属していません StackOverflow