2013-11-27 82 views
1

由於Java 1.7有一種在不添加額外庫的情況下監視目錄的方法。在Oracle網站上有一個小教程,如何使用WatchService http://docs.oracle.com/javase/tutorial/essential/io/notification.html#try,但它對我來說是非常難以理解的。有沒有consitent例子如何使用它。使用Java 1.7中的WatchService監視目錄更改

因此,有人會告訴我如何添加偵聽器到目錄並調用方法,例如:f()當文件被添加到目錄讓我們說:「./文件夾」?

回答

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

我想增加對未來的讀者,這上面的代碼應粘貼:'新主題(新Runnable(){public void run(){HERE}});' – Yoda