mitico!!
allora, apache commons io già la uso.
quindi ho modificato così:
poi ho modificato il metodo che lista i files:codice:import org.apache.commons.io.FilenameUtils; import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; public class ExtensionFilenameFilter implements FilenameFilter { private final String[] extensions; public ExtensionFilenameFilter(String... extensions) { this.extensions = Arrays.stream(extensions).map(String::toLowerCase).toArray(String[]::new); } @Override public boolean accept(File dir, String name) { String fileExt = FilenameUtils.getExtension(name.toLowerCase()); for (String extension : extensions) { if (fileExt.equals(extension)) { return true; } } return false; } }
così anche questo dovrebbe essere più generico.codice:import java.io.File; import java.util.ArrayList; public class ListFilesDirectory { public ArrayList<String> getFilesExts(File dir, String... extensions) { ArrayList<String> listfiles = new ArrayList<>(); if (dir != null) { File[] files = dir.listFiles(new ExtensionFilenameFilter(extensions)); for (File f : files) { listfiles.add(f.getAbsolutePath()); } } return listfiles; } }
poi a cascata nel controller:
funzionare sembra funzionare bene!codice:lid = new ListFilesDirectory(); String[] exts = {"jpg", "jpeg", "png"}; images = lid.getFilesExts(dc.showDialog(getStage().getOwner(), "Choose directory").get(), exts);

Rispondi quotando