Watch for Changes in a Directory
Выдержки из этого учебника:
Создание службы Часы и регистрации для событий
Первый шаг заключается в создании нового WatchService с помощью метода newWatchService в классе FileSystem, а следует:
WatchService watcher = FileSystems.getDefault().newWatchService();
Затем зарегистрируйте один или несколько объектов в сервисе просмотра. Любой объект, который реализует интерфейс Watchable, может быть зарегистрирован. Класс Path реализует интерфейс Watchable, поэтому каждый контролируемый каталог регистрируется как объект Path.
Как и в случае с любым наблюдаемым, класс Path реализует два метода регистрации. Эта страница использует версию с двумя аргументами, register (WatchService, WatchEvent.Kind ...). (В версии с тремя аргументами используется WatchEvent.Modifier, который в настоящее время не реализован.)
При регистрации объекта с помощью службы просмотра вы указываете типы событий, которые вы хотите контролировать. Поддерживаемые типы StandardWatchEventKinds событий следуют:
ENTRY_CREATE – A directory entry is created.
ENTRY_DELETE – A directory entry is deleted.
ENTRY_MODIFY – A directory entry is modified.
OVERFLOW – Indicates that events might have been lost or discarded. You do not have to register for the OVERFLOW event to receive it.
Следующий фрагмент кода показывает, как зарегистрировать экземпляр Path для всех трех типов событий:
import static java.nio.file.StandardWatchEventKinds.*;
Path dir = ...;
try {
WatchKey key = dir.register(watcher,
ENTRY_CREATE,
ENTRY_DELETE,
ENTRY_MODIFY);
} catch (IOException x) {
System.err.println(x);
Рассматривали ли вы 'rsync'? –
Существует также JNotify. – Gandalf
Пожалуйста, примите ответ, если он вам помог, потому что будет легче найти его для других, если у них будет такая же проблема, как у вас. – LaGrandMere