Наблюдение за изменениями файлов и каталогов в Java

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

Я также немного изучил Apache VFS FileListener, но прежде чем потратить еще около 6 часов своего времени на создание какой-то обертки вокруг него, я подумал, что, возможно, я просто спрошу тех, кто более осведомлен, чем я сам.

Мне нужно, чтобы просматриваемые каталоги были полностью управляемыми, за исключением того, что просматриваемый корневой каталог не будет удален или переименован. Существует ли уже хороший класс, с которым я могу работать для мониторинга файлов и каталогов, который не блокирует файлы или папки? Я пытаюсь избежать подхода сравнения опросов / хэшей, но все больше и больше чувствую, что мне нужно будет использовать этот подход и прожечь тонну ресурсов ЦП. С чего мне начать? В идеале мне нужно:

-Обнаружение создания файлов и каталогов -Обнаружение удаления файлов и каталогов -Обнаружение переименования файлов и каталогов -Обнаружение изменений файлов -Обнаружение перемещения файлов между каталогами

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

Заранее спасибо, и извините за не столь специфичный для кода вопрос!

Ответы на вопрос(1)

Ваш ответ на вопрос