Уведомить кнопку, если количество файлов в каталоге изменится
Вопрос
У меня есть кнопка, которую я хочу отключить, если в каталоге нет определенного количества файлов.Есть ли какой-то прослушиватель, который уведомляет меня в момент создания или удаления файла в каталоге?
Решение
В настоящее время в Java нет встроенной поддержки событий файловой системы и мониторинга. JУведомить — полезная библиотека для этого.Вам следует настроить его так, чтобы он отслеживал каталог на предмет изменений, а затем самостоятельно определял, что было добавлено/удалено.
Java 7 будет поддерживать события файловой системы встроен в него.
Другие советы
Возможно, вам стоит принять во внимание одну вещь: если вы прослушиваете события создания, вам нужно убедиться, что файл полностью записан, прежде чем начинать его читать.Я не уверен, какой тип поддержки Java 7 предложит для решения этой проблемы.
Я реализовал подобные механизмы в прошлом, и эта конкретная проблема требовала особого подхода.Если вы управляете как устройством чтения, так и записи файлов, вы можете обойти это с помощью соглашений об именах и т. д.(писатель называет файл xxx.prt и переименовывает его после завершения записи).Поскольку у меня не было контроля над записывающим устройством, мне пришлось добавить еще один механизм опроса, чтобы проверять размер файла через определенные промежутки времени, чтобы убедиться, что каждый новый файл действительно готов к чтению.Не идеальное решение, но для моего случая вполне достаточно.
Мои два цента...