Is there a way to detect file renaming using Java? (NIO's WatchService API or any other) From what I've seen when renaming a file two separate events occur - ENTRY_DELETE and then ENTRY_CREATE.
Take a look at jpathwatch. In addition to the standard watch event kinds specified in Java 7 (ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY
) it also has additional events called ENTRY_RENAME_FROM
and ENTRY_RENAME_TO
which will fire when a file is renamed. Note that this depends on whether the underlying operating system supports file renaming events or not.
Detecting renaming of files can not be done portably. Because, surprising as it may seem, the idea that a file HAS-A name is not portable. Most Unix file systems allow a file to have any number of ASSOCIATED names (including zero names). In the Unix (POSIX) world, renaming means adding a new name and then removing the original name.
I think the jnotify would be useful in your case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With