Я пишу здесь в основном для консультаций о том, с чего начать. Я уже реализовал класс, который будет рекурсивно наблюдать за каталогом с помощью WatchService Java. Он работает вполне нормально для обнаружения изменений, но я заметил фатальную ошибку: я не могу удалить каталоги, которые просматриваются, которые содержат каталоги, которые просматриваются. Это похоже на ограничение WatchService.Наблюдение за изменениями файлов и каталогов в Java
Я также немного изучил VFS FileListener Apache, но прежде чем потратить еще 6 или около того часов своего времени на создание какой-то обертки вокруг него, я подумал, может быть, я просто попрошу тех, кто более осведомлен, чем я сам ,
Мне нужно, чтобы все просмотренные каталоги были полностью обработаны, за исключением того, что просматриваемый корневой каталог не будет удален или переименован. Существует ли уже хороший класс, с которым я могу работать, для мониторинга файлов и каталогов, которые не блокируют файлы или папки? Я пытаюсь избежать подхода к опросу/хешу, но я чувствую все больше и больше, как будто мне нужно будет использовать этот подход и прожечь массу ресурсов ЦП. С чего начать? В идеале, мне нужно:
-Detect создания файлов и каталоги -Detect удаления файлов и каталоги -Detect переименования файлов и каталоги -Detect модификации файлов -Detect перемещения файлов между каталогами
Я также видел, что некоторые предполагают, что наблюдатели ненадежны и что они используют комбинацию из двух (иногда опрос в случае, если наблюдатель не сработал где-то), но человек, который звучит как настоящая боль, которую я бы предпочел избежать, t наилучшим образом. У меня есть ощущение, что мне понадобятся опрос и хеширование, тем более что я хочу обнаружить перемещение и переименование файлов, но, пожалуйста, скажите, существуют ли лучшие варианты.
Заранее благодарим за неправильный код!
Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/8109382/java-nio-filesystem-watcher-locks-directories-deletion-becomes-impossible) – Casey
Спасибо, хотя я уже видел этот вопрос. В настоящее время я играю с добавлением модификатора FILE_TREE, специфичного для Windows, и у меня есть некоторый успех. Было бы здорово, если бы был лучший способ, хотя теперь, когда я сталкиваюсь с замечательной проблемой выяснения того, как обнаружить перемещение и переименование файлов и каталогов. В конце концов, я могу ответить на свой вопрос классом, если я потрачу достаточно долго на это. –