Уведомить кнопку, если количество файлов в каталоге изменилось - PullRequest
2 голосов
/ 10 августа 2009

У меня есть кнопка, которую я хочу отключить, если в каталоге нет определенного количества файлов. Есть ли какой-то слушатель, который уведомляет меня в момент создания или удаления файла в каталоге?

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

В Java нет текущей встроенной поддержки событий и мониторинга файловой системы. JNotify - полезная библиотека для этого. Вы должны настроить его, чтобы отслеживать каталог на наличие изменений, а затем самим определять, что было добавлено / удалено.

Java 7 будет иметь встроенную поддержку событий файловой системы .

3 голосов
/ 13 августа 2009

Одна вещь, которую вы можете рассмотреть: если вы слушаете события создания, вам нужно убедиться, что файл полностью записан, прежде чем вы начнете читать его. Я не уверен, какой тип поддержки Java 7 предложит для этой проблемы.

Я реализовывал подобные механизмы в прошлом, и эта конкретная проблема требовала специальной обработки. Если вы управляете как устройством чтения, так и записывающим устройством, вы можете обойти это с помощью соглашений об именах и т. Д. (Записывающее устройство присваивает файлу имя xxx.prt и переименовывает его, когда оно завершается). Поскольку у меня не было контроля над автором, мне пришлось добавить еще один механизм опроса, чтобы проверять размер файла через определенный интервал времени, чтобы убедиться, что каждый новый файл действительно готов для чтения. Не идеальное решение, но было достаточно для моего случая.

Мои два цента ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...