Вам необходимо установить фильтр файлов , что вы можете сделать, либо расширив класс FileFilter , либо используя встроенную реализацию, например FileNameExtensionFilter .Обратите внимание, что FNEF принимает переменные аргументы в Java, что означает, что он принимает массив в реальном байт-коде JVM.Так что что-то вроде
(FileNameExtensionFilter.
"Text files only"
(into-array ["txt"]))
будет простым, разумным фильтром.
Или, если вы предпочитаете делать что-то более специализированное, например, принимать только расширения, в которых есть J, вы можете реализоватьфильтрация себя.К сожалению, Java решила сделать этот класс 100% абстрактным вместо интерфейса, так что вы не можете использовать reify.В идеальном мире вы могли бы написать
(reify java.io.FileFilter
(getDescription [this] "Java loves Js!")
(accept [this f]
(boolean (re-find #"\..*j[^.]*$" (.getName f)))))
, но Java любит классы, поэтому вместо этого вам нужно
(proxy [java.io.FileFilter] []
(getDescription [] "Java loves Js!")
(accept [f]
(boolean (re-find #"\..*j[^.]*$" (.getName f)))))