Я использую Jnotify, чтобы написать приложение. (JNotify это библиотека для обнаружения модификации файла.)игнорировать файл изменить с помощью Jnotify
Приложение имеет следующие компоненты:
Файл писатель, который пишет в файл X
Файловая Бодрствующего (созданный с помощью JNotify), который смотрит файл X
Внешнее приложение (например, блокнот), которое записывает в файл X по требованию пользователя.
Хочу JNotify, чтобы вызвать уведомления только тогда, когда Х изменяется с использованием 3, и игнорировать при модификации с помощью 1. (или, по крайней мере, различие между изменениями через 1 и 3).
Есть ли простой способ, которым я могу это сделать? Один из способов состоит в том, чтобы синхронизировать переменную, которая переключается, когда писатель файла пишет на нее, но я чувствую, что это не очень элегантно.
Файл блокировки кажется хорошей идеей. Однако, когда 1 создает файл блокировки, записывает и удаляет файл блокировки, иногда 2 не хватает времени. Поэтому прямо сейчас я использую 'Thread.sleep (1000)' перед удалением файла блокировки. Не очень элегантный. – Jus12
Пока вы не можете управлять 3 при записи в файл, вы должны заблокировать файл при запуске 1. Если вы не можете заблокировать файл и не можете управлять 3 дальше, всегда будет вероятность состояния гонки между 1 + 3. – PeterMmm