Уведомете бутон, ако броят на файловете в директория се промени

Имам бутон, който искам да деактивирам, стига да няма определен брой файлове в дадена директория. Има ли някакъв слушател, който ме уведомява в момента, в който файл е създаден или изтрит в директория?


person Janusz    schedule 10.08.2009    source източник
comment
IIRC това е дубликат   -  person dfa    schedule 10.08.2009
comment
Не успях обаче да намеря съвсем дупката.   -  person Brian Agnew    schedule 10.08.2009


Отговори (2)


Няма текуща вградена поддръжка в Java за събития и наблюдение на файловата система. JNotify е полезна библиотека за това. Трябва да го настроите да следи директорията за модификации и след това сами да определите какво е добавено/премахнато.

Java 7 ще има вградена поддръжка за събития на файловата система.

person Brian Agnew    schedule 10.08.2009

Едно нещо, което може да искате да имате предвид - ако слушате събития за създаване, тогава ще искате да се уверите, че файлът е напълно записан, преди да започнете да го четете. Не съм сигурен какъв тип поддръжка ще предложи Java 7 за този проблем.

Прилагал съм подобни механизми в миналото и този конкретен проблем изискваше специално отношение. Ако контролирате както четеца, така и записващия файл, тогава можете да заобиколите това с конвенции за именуване и т.н. (писателят наименува файла xxx.prt и го преименува, когато приключи записването). Тъй като нямах контрол върху писателя, трябваше да добавя друг механизъм за анкетиране, за да проверя размера на файла на интервал, за да се уверя, че всеки нов файл действително е готов за четене. Не е перфектно решение, но беше достатъчно за моя случай.

Моите два цента...

person tyler    schedule 12.08.2009