Ограничение JFileChooser определенным каталогом

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

Нужно ли мне...

  • Override getCurrentDirectory()?
  • Использовать FileFilter? Обычно они используют String.endsWith(), но я бы получил абсолютный путь и ограничил на основе пути к внешнему устройству.

1 ответ

Я бы абсолютно избежал реализации таких ограничений. Это почти невозможно сделать правильно (как вы можете надежно определить, что такое внешнее хранилище?). Это идет вразрез с ожиданиями пользователей.

Лучшим подходом было бы позволить пользователю выбрать любой каталог, который ему нравится, и, когда вы обнаружите, что каталог, вероятно, не подходит, выведите предупреждение с подробным описанием причин, по которым он не подходит. Предложите два варианта предупреждения: "Понятно, все равно продолжай" и "Выбрать другой каталог". И, возможно, опция отключения предупреждения где-то в настройках программы.

Другие вопросы по тегам