2013-11-27 3 views
1

Поскольку Java 1.7 существует способ просмотра каталога без добавления дополнительных библиотек. На сайте Oracle есть небольшое руководство по использованию WatchService http://docs.oracle.com/javase/tutorial/essential/io/notification.html#try, но это очень непонятно для меня. Нет никакого последовательного примера, как его использовать.Просмотр изменений в каталоге с помощью WatchService в Java 1.7

Поэтому кто-то любезно покажет мне, как добавить слушателя в каталог и вызвать метод, например: f(), когда файл добавлен в каталог, скажем: «./ folder»?

ответ

1

Этот фрагмент кода будет вызываться каждый раз, когда вы создаете файл в папке отслеживания:

Path path = new File("./folder").toPath(); 
    WatchService watchService = FileSystems.getDefault().newWatchService(); 
    path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE); 
    for (;;) { 
     try { 
     WatchKey key = watchService.take(); 
     for (WatchEvent<?> event : key.pollEvents()) { 
      WatchEvent.Kind<?> kind = event.kind(); 
      if (kind.equals(StandardWatchEventKinds.ENTRY_CREATE)) { 
       System.out.println("file created"); 
      } 
     } 
     } catch (InterruptedException x) { 
      return; 
     } 
    } 
+1

Я хотел бы добавить для будущих читателей, что этот код выше должен быть вклеенными: 'New Thread (новый Runnable() {public void run() {HERE}}); ' – Yoda