Имам бутон, който искам да деактивирам, стига да няма определен брой файлове в дадена директория. Има ли някакъв слушател, който ме уведомява в момента, в който файл е създаден или изтрит в директория?
Уведомете бутон, ако броят на файловете в директория се промени
Отговори (2)
Няма текуща вградена поддръжка в Java за събития и наблюдение на файловата система. JNotify е полезна библиотека за това. Трябва да го настроите да следи директорията за модификации и след това сами да определите какво е добавено/премахнато.
Java 7 ще има вградена поддръжка за събития на файловата система.
Едно нещо, което може да искате да имате предвид - ако слушате събития за създаване, тогава ще искате да се уверите, че файлът е напълно записан, преди да започнете да го четете. Не съм сигурен какъв тип поддръжка ще предложи Java 7 за този проблем.
Прилагал съм подобни механизми в миналото и този конкретен проблем изискваше специално отношение. Ако контролирате както четеца, така и записващия файл, тогава можете да заобиколите това с конвенции за именуване и т.н. (писателят наименува файла xxx.prt и го преименува, когато приключи записването). Тъй като нямах контрол върху писателя, трябваше да добавя друг механизъм за анкетиране, за да проверя размера на файла на интервал, за да се уверя, че всеки нов файл действително е готов за четене. Не е перфектно решение, но беше достатъчно за моя случай.
Моите два цента...