mitico!!
allora, apache commons io già la uso.
quindi ho modificato così:
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;
}
}
poi ho modificato il metodo che lista i files:
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;
}
}
così anche questo dovrebbe essere più generico.
poi a cascata nel controller:
codice:
lid = new ListFilesDirectory();
String[] exts = {"jpg", "jpeg", "png"};
images = lid.getFilesExts(dc.showDialog(getStage().getOwner(), "Choose directory").get(), exts);
funzionare sembra funzionare bene!