2016-08-22 6 views
3

Я хочу, чтобы найти Создание и Модификация файлов с использованием JAVA. Я использую WatchService API предоставляемые JDK 7.Как обрабатывать событие JAVA WatchService Overflow?

Так что, когда есть создание несколько файлов в данном случае существует такой уровень, что служба часов может обрабатывать, а затем он генерирует и OVERFLOW события.

Пример части кода представлен ниже.

Каков наиболее подходящий способ справиться с этой ситуацией при возникновении и переполнении события, чтобы обнаружить создание всех файлов?

for (WatchEvent<?> event : key.pollEvents()) { 
    WatchEvent.Kind kind = event.kind(); 
    // TBD - provide example of how OVERFLOW event is handled 
    if (kind == OVERFLOW) { 
     System.err.println("OVERFLOW !"); 
     continue; 
    } 
} 

ответ

1

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

Есть два возможных варианта, чтобы иметь дело с этим:

  • Предотвратить OVERFLOW от происходящих
  • Handle OVERFLOW, если она до сих пор произошло

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

Ручка OVERFLOW если она до сих пор произошло

Если OVERFLOW все еще происходит,

  • остановка прослушивания событий
  • очистить очередь
  • вызова listFiles() в каталоге
  • начать прослушивание событий снова
  • вставить перечисленные файлы в очередь