Java: обнаружение модификации файла (опрос файла?) - PullRequest
3 голосов
/ 08 октября 2010

Какой самый эффективный способ обнаружить изменение файла в Java?

Однако я читал об опросе файлов, но у подхода с опросом есть ряд недостатков, которые проявляются в виде количества просматриваемых файлов.увеличивается.Я скорее не использую опрос, но некоторые решения онлайн указывают на то, что опрос файлов рекомендуется.Я надеялся, что, возможно, вместо этого появится решение обратного вызова обновления файловой системы для ОС - возможно ли это как в Linux, так и в Windows?

Учитывая, что в настоящее время я намерен «смотреть» только 2 файла, я все еще открыт для решения опроса файлов.В идеале, я надеюсь, что опрос файлов не окажет большого влияния на производительность.

Я знаю о WatchService в Java 7, но, поскольку 7 официально не выпущен, я не решаюсь использовать этот подходили библиотеки JNI.

Очень ценится!

РЕДАКТИРОВАТЬ: Похоже, что опрос файла является путь.Если кто-то может порекомендовать самый безопасный / эффективный способ реализации опроса файлов, это было бы здорово.

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

Вот две доступные библиотеки:

Java 7 NIO2 также может иметь некоторые вещи для вас (я не знаю, имеются ли в данный момент возможности для Java 7) Также доступно как JSR 203 см. здесь

1 голос
/ 08 октября 2010

Не существует Java-решения, позволяющего ОС уведомлять вас об изменении файла. Это может быть возможно через собственные вызовы, но каждая ОС будет отличаться в этом отношении, и это, безусловно, не поддерживается в Java. Это потребовало бы большого количества пользовательского кодирования с JNI - если это вообще возможно.

Переходя к решению опроса, пока вы запрашиваете изменение даты, оно должно быть довольно быстрым. Только не оставляйте ссылки на файлы открытыми в течение продолжительного времени. Всегда закрывайте их между циклами опроса, чтобы избежать конфликтов.

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