allora.
per quanto riguarda il primopunto, in effetti se non veniva scelto nulla, veniva generata una eccezione.
nn lo avevo considerato.
ho modificato così:
in questo modo, se viene cliccato annulla sul directorychooser, non succede nulla.codice:lid = new ListFilesDirectory(); String[] exts = {"jpg", "jpeg", "png"}; Optional<File> optFile = dc.showDialog(getStage().getOwner(), "Choose directory"); if (optFile.isPresent()) { images = lid.getFilesExts(optFile.get(), exts); // ECCETERA }
per la seconda questione.
in effetti avevo pensato di fare un controllo per verificare sia una directory.
ma avendo scelto un DirectoryChooser, ho pensato fosse inutile, visto che si possono selezionare solo directory.
ma in effetti, potrei riusare il tutto anche in altre circostanze, e quindi metterò un controllo anche su questo.
per l'ultimo punto, intendi una cosa del genere??
codice:public class ExtensionFilenameFilter implements FileFilter { private final String[] extensions; public ExtensionFilenameFilter(String... extensions) { this.extensions = Arrays.stream(extensions).map(String::toLowerCase).toArray(String[]::new); } @Override public boolean accept(File file) { if (file.isFile()) { String fileExt = FilenameUtils.getExtension(file.getName().toLowerCase()); for (String extension : extensions) { if (fileExt.equals(extension)) { return true; } } } return false; } }

Rispondi quotando