Mal eine Funktion zur Verzeichnisssuche:
(defun FOLDER-SEARCH(MAINFOLDER SUBFOLDER / FOLDERLISTE GET-SUBLIST)
(defun GET-SUBLIST ( MAINFOLDER SUBLISTE ) ;_ Subfunction
(foreach FOLDER (vl-directory-files MAINFOLDER "*.*" -1)
(if (not(member FOLDER '("." "..")))
(progn
(setq SUBLISTE (cons (strcat MAINFOLDER "/" FOLDER) SUBLISTE))
(setq SUBLISTE(GET-SUBLIST(strcat MAINFOLDER "/" FOLDER)SUBLISTE))
)
)
)
SUBLISTE
)
(if(and(=(type MAINFOLDER)'STR)(=(type SUBFOLDER)'STR) ;_ Hauptfunktion
(vl-file-directory-p MAINFOLDER)
)
(progn
(vl-remove-if-not '(lambda (PATH)
(while (or(vl-string-search "\\" PATH)
(vl-string-search "/" PATH)
)
(setq PATH (vl-string-subst "\" \"" "\\" PATH))
(setq PATH (vl-string-subst "\" \"" "/" PATH))
)
(setq PATH (read (strcat "(\"" path "\")")))
(=(strcase(car(reverse PATH)))(strcase SUBFOLDER))
)
(GET-SUBLIST MAINFOLDER (list MAINFOLDER))
)
)
)
)
Ein Aufruf mit z.B. (FOLDER-search "D:" "LISP") liefert alle Absolutverzeichnisnamen von "LISP" auf Laufwerk D: zurück.
(mir persönlich ist die Funktion allerdigs zu "lahm")
Kannste dir ja in deine Openfunktion reinbasteln!
------------------
- Thomas -
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP