Let's start with a stub method that gets the Path of the folder that should be monitored for changes as an argument:
public void watchFolder(Path path) throws IOException, InterruptedException { ...}
WatchService will notify us when any of the ENTRY_CREATE, ENTRY_DELETE, and ENTRY_MODIFY event types occur on the given folder. For this, we need to follow several steps:
- Create WatchService so that we can monitor the filesystem—this is accomplished via FileSystem.newWatchService(), as follows:
WatchService watchService = FileSystems.getDefault().newWatchService();
- Register the event types that should be notified—this is accomplished via Watchable.register():
path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, ...