Frage

Wie erhalte ich eine Liste von Dateien (*.jpg) aus allen Ordnern, die Skript-FU in GIMP verwenden?

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

Dies erhält nur Dateien aus dem aktuellen Ordner.

War es hilfreich?

Lösung

Es wird etwas kompliziert sein, aber es kann getan werden. Die Liste der Dateien, die Datei-Glob für das aktuelle Verzeichnis zurückgibt inklusive Unterverzeichnisse. Sie können diese Liste damit verwenden, um mehr GLOB-Zeichenfolgen rekursiv zu erstellen, die an Datei-Glob usw. übergeben werden können.

(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)))))

Das funktioniert, aber es ist langsam. Vielleicht können Sie einen Weg finden, es schneller zu machen?

Dies gibt übrigens alle Dateien zurück, nicht nur JPGs. Ändern Sie die Zeile, in der "(Dateien anhängen (Search-Dirs-Dateien) anhängen)." Anstatt "Dateien" anzuhängen, filtern Sie die JPGs heraus und fügen Sie diese nur an.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top