Java Example of org.apache.commons.io.monitor

Q

Where can I find an example Java code that uses the org.apache.commons.io.monitor package?

✍: FYIcenter.com

A

org.apache.commons.io.monitor package provides a component for monitoring file system events (directory and file create, update and delete events).

Andrei Ciobanu provided a good Java example that uses the org.apache.commons.io.monitor package at andreINC.net Website.

import java.io.File;
import java.io.IOException;
 
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
 
public class SimpleTestMonitor {
   // A hardcoded path to a folder you are monitoring .
   public static final String FOLDER = "/temp";
 
   public static void main(String[] args) throws Exception {
      // The monitor will perform polling on the folder every 5 seconds
      final long pollingInterval = 5 * 1000;
 
      File folder = new File(FOLDER);
 
      if (!folder.exists()) {
         // Test to see if monitored folder exists
         throw new RuntimeException("Directory not found: " + FOLDER);
      }
 
      FileAlterationObserver observer = new FileAlterationObserver(folder);
      FileAlterationMonitor monitor =
            new FileAlterationMonitor(pollingInterval);
      FileAlterationListener listener = new FileAlterationListenerAdaptor() {
         // Is triggered when a file is created in the monitored folder
         @Override
         public void onFileCreate(File file) {
            try {
               // "file" is the reference to the newly created file
               System.out.println("File created: "
                     + file.getCanonicalPath());
            } catch (IOException e) {
               e.printStackTrace(System.err);
            }
         }
 
         // Is triggered when a file is deleted from the monitored folder
         @Override
         public void onFileDelete(File file) {
            try {
               // "file" is the reference to the removed file
               System.out.println("File removed: "
                     + file.getCanonicalPath());
               // "file" does not exists anymore in the location
               System.out.println("File still exists in location: "
                     + file.exists());
            } catch (IOException e) {
               e.printStackTrace(System.err);
            }
         }
      };
 
      observer.addListener(listener);
      monitor.addObserver(observer);
      monitor.start();
   }
}

You can compile and run the above example in a command window as shown below:

C:\fyicenter>javac -cp C:\local\commons-io-2.5\commons-io-2.5.jar 
   SimpleTestMonitor.java

C:\fyicenter>java -cp .;C:\local\commons-io-2.5\commons-io-2.5.jar 
   SimpleTestMonitor

Then copy and paste the Java code file to the C:\temp folder. You see a new message displayed in the command window:

File created: C:\temp\SimpleTestMonitor.java

 

Using commons-io.jar in Java Code

⇒⇒FAQ for Apache commons-io.jar

2017-04-28, 334👍, 0💬