I am using watchKey
to listen for a file change in a particular folder.
Path _directotyToWatch = Paths.get(\"E:/Raja\");
WatchService watcherSvc
I know this is ugly, hopefully somebody has a better answer but you can create a list of every file in every subfolder and there last modified times.
When you receive ENTRY_CREATE or ENTRY_DELETE compare the folder to your list to figure out which file was changed
When you receive a ENTRY_MODIFY compare the last modified times.
Remember to update your list.