Java обнаруживает изменения в файловой системе - PullRequest
8 голосов
/ 02 августа 2010

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

Мне известна функция listFiles () в классе File, но с ее помощью я могу получить только те файлы, которые доступны в моментвремя.Конечно, я могу постоянно опрашивать папку и получать список файлов в ней, используя поток. Но это лучший способ или есть лучший способ сделать это.

Ответы [ 2 ]

7 голосов
/ 02 августа 2010

Непрерывный опрос - это способ сделать это в Java на данный момент - хотя не опрашивайте слишком часто, это может быть довольно тяжелой операцией, если каталог содержит много записей.

JDK 7 будет иметь специальный API для этого java.nio.file.WatchFile

4 голосов
/ 02 августа 2010

К сожалению, нет стандартного способа сделать это, пока не выйдет JDK7. Но в Интернете есть несколько библиотек, которые используют для этого встроенные функции различных операционных систем.

Библиотеки, на которые я смотрел jPoller и jNotify Но в итоге я закончил просто опросить каталог, который мне был интересен, когда мне пришлось это делать.

...