Обнаружение изменений файловой системы на общем ресурсе Samba с Java на Windows - PullRequest
1 голос
/ 08 марта 2010

для недавнего проекта мне нужно обнаружить изменения файловой системы на сопоставленном ресурсе Samba из java для windows: создает, обновляет и удаляет. В настоящее время я использую опрос папок, который ведет список файлов и их измененную временную метку для поиска событий.

Но моя проблема в том, что этот опрос папки просматривает папку только в определенное время (например, каждые 10 секунд), поэтому обновленный файл может обновляться дважды между двумя опросами без распознавания.

Есть ли какой-нибудь способ получить события из окон внутри Java всякий раз, когда происходит событие файла на общем ресурсе Samba mappep?

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 марта 2010

Java не имеет ничего в текущем API IO для работы с уведомлениями о файлах из O / S.

Java 7 будет иметь новый IO API JSR-203 , который имеет API файла просмотра , который будет использовать собственные O / S уведомления или опрос , если уведомления не поддерживаются для обнаружения изменений файла.

Тем временем вы можете посмотреть, внедрил ли кто-то библиотеку, которая позволяет вам подключаться к уведомлениям O / S через JNI. Я думаю, что IntelliJ IDEA использует собственную библиотеку для этой цели.

Глядя на Sourceforge, я нашел jfilenotify , но я никогда не использовал его.

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

0 голосов
/ 08 марта 2010

Согласно этой записи на форуме TeamDev JNIWrapper способен делать это так, как я хочу. Я только что купил копию. Спасибо и

Greetz, GHAD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...