Есть ли обходной путь: FileFilter не работает в Windows?

Следующий код JFileChooser работает нормально, за исключением того, что FileFilter не фильтрует. Это ничего не делает. Из другого ответа stackoverflow: «Фильтры имен файлов не работают в эталонной реализации Sun для Microsoft Windows». Комментарий от 21 ноября 2016 г.

Есть ли обходной путь FileFilter для Windows?

public String getPathFileName(String startingDir) {
   String returnSelectedFile = "";
   JFileChooser fileChooser = new JFileChooser(startingDir);
   FileFilter filter = new FileNameExtensionFilter("Excel file", "xls", "xlsx");
   fileChooser.addChoosableFileFilter(filter);
   int returnValue = fileChooser.showOpenDialog(null);
   if (returnValue == JFileChooser.APPROVE_OPTION) {
       File selectedFile = fileChooser.getSelectedFile();
       returnSelectedFile = selectedFile.getPath();
   }
   return returnSelectedFile;
}

person Tommus    schedule 31.07.2017    source источник


Ответы (1)


Я нашел, что это работает:

final JFileChooser chooser = new JFileChooser(); chooser.setFileFilter(new FileNameExtensionFilter("CSV FILES", "csv"));

Я обнаружил, что это работает для одного файлового фильтра, но не могу подтвердить для нескольких файловых фильтров. Надеюсь это поможет.

person Nick Clark    schedule 31.07.2017
comment
Ник, это идеально подходит для того, что мне нужно. Большое спасибо! Извините, я не могу проголосовать за вас, потому что у меня еще недостаточно высокий показатель репутации. Но это ценится. - person Tommus; 31.07.2017
comment
Вы должны принять ответ как правильный, и @Nick получит за него репутацию. - person JJF; 31.07.2017
comment
Рад быть полезным @Tommus - person Nick Clark; 01.08.2017