WatchService API events, change editable files (word, odt,…)2019 Community Moderator ElectionFileSystemWatcher: Ignore temporary and ghost files createdWatchService / WatchEvent / Path from eventJava 7 WatchService: avoiding an infinite loop of events when changing the event source in handlerHow does Folder Watcher work in JDK 7?Can I watch for single file change with WatchService (not the whole directory)?Modify Java File attributes without changing disk-fileJava NIO watch Service created both 'ENTRY_CREATE' and 'ENTRY_MODIFY' when a new File is added to the watch folderHow to implement file watcher to Watch multiple directoriesJava WatchService misses events, filesChange state of WatchService
How is the partial sum of a geometric sequence calculated?
Could Sinn Fein swing any Brexit vote in Parliament?
Practical application of matrices and determinants
Would it be believable to defy demographics in a story?
gerund and noun applications
Brake pads destroying wheels
My friend is being a hypocrite
How to terminate ping <dest> &
Can you move over difficult terrain with only 5 feet of movement?
Knife as defense against stray dogs
Recruiter wants very extensive technical details about all of my previous work
How to get the n-th line after a grepped one?
Comment Box for Substitution Method of Integrals
Is there a term for accumulated dirt on the outside of your hands and feet?
What does Jesus mean regarding "Raca," and "you fool?" - is he contrasting them?
Can a medieval gyroplane be built?
Maths symbols and unicode-math input inside siunitx commands
Tikz: place node leftmost of two nodes of different widths
Print last inputted byte
Have the tides ever turned twice on any open problem?
Print a physical multiplication table
In Aliens, how many people were on LV-426 before the Marines arrived?
Generic TVP tradeoffs?
How to define limit operations in general topological spaces? Are nets able to do this?
WatchService API events, change editable files (word, odt,…)
2019 Community Moderator ElectionFileSystemWatcher: Ignore temporary and ghost files createdWatchService / WatchEvent / Path from eventJava 7 WatchService: avoiding an infinite loop of events when changing the event source in handlerHow does Folder Watcher work in JDK 7?Can I watch for single file change with WatchService (not the whole directory)?Modify Java File attributes without changing disk-fileJava NIO watch Service created both 'ENTRY_CREATE' and 'ENTRY_MODIFY' when a new File is added to the watch folderHow to implement file watcher to Watch multiple directoriesJava WatchService misses events, filesChange state of WatchService
I am using the following code to motorize a folder, to get the events of creation, modification, and elimination of files
public static void main(String[] args)
try
Path dir = Paths.get("D:/Temp/");
WatchService watcher = FileSystems.getDefault().newWatchService();
dir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey key;
while ((key = watcher.take())!=null)
for (WatchEvent<?> event : key.pollEvents())
WatchEvent.Kind<?> kind = event.kind();
@SuppressWarnings("unchecked")
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path fileName = ev.context();
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
if(kind==StandardWatchEventKinds.ENTRY_DELETE)
System.out.println("File Deleted " + fileName);
if (kind == StandardWatchEventKinds.ENTRY_MODIFY )
System.out.println("File Modified " + fileName);
boolean valid = key.reset();
if (!valid)
break;
catch (IOException ex)
System.err.println(ex);
}
When I edit a word file (TEST.docx
) within the folder that is being monitored and saved with changes, the following event result is displayed:
New File Added, file Name ~$TEST.docx
File Modified ~$TEST.docx
New File Added, file Name ~WRD0000.tmp
File Modified ~WRD0000.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0001.tmp
File Deleted ~WRD0000.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0001.tmp
New File Added, file Name ~WRD0002.tmp
File Modified ~WRD0002.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0003.tmp
File Deleted ~WRD0002.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0003.tmp
File Deleted ~WRL0003.tmp
File Deleted ~WRL0001.tmp
File Deleted ~$TEST.docx
Some events are caused by temporary files that are created by the Word application during this editing process.
Is there any way to filter the events to only get those from the word file (TEST.docx
) and ignore the events originating from temporary files?
Thanks
java watchservice
add a comment |
I am using the following code to motorize a folder, to get the events of creation, modification, and elimination of files
public static void main(String[] args)
try
Path dir = Paths.get("D:/Temp/");
WatchService watcher = FileSystems.getDefault().newWatchService();
dir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey key;
while ((key = watcher.take())!=null)
for (WatchEvent<?> event : key.pollEvents())
WatchEvent.Kind<?> kind = event.kind();
@SuppressWarnings("unchecked")
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path fileName = ev.context();
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
if(kind==StandardWatchEventKinds.ENTRY_DELETE)
System.out.println("File Deleted " + fileName);
if (kind == StandardWatchEventKinds.ENTRY_MODIFY )
System.out.println("File Modified " + fileName);
boolean valid = key.reset();
if (!valid)
break;
catch (IOException ex)
System.err.println(ex);
}
When I edit a word file (TEST.docx
) within the folder that is being monitored and saved with changes, the following event result is displayed:
New File Added, file Name ~$TEST.docx
File Modified ~$TEST.docx
New File Added, file Name ~WRD0000.tmp
File Modified ~WRD0000.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0001.tmp
File Deleted ~WRD0000.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0001.tmp
New File Added, file Name ~WRD0002.tmp
File Modified ~WRD0002.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0003.tmp
File Deleted ~WRD0002.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0003.tmp
File Deleted ~WRL0003.tmp
File Deleted ~WRL0001.tmp
File Deleted ~$TEST.docx
Some events are caused by temporary files that are created by the Word application during this editing process.
Is there any way to filter the events to only get those from the word file (TEST.docx
) and ignore the events originating from temporary files?
Thanks
java watchservice
add a comment |
I am using the following code to motorize a folder, to get the events of creation, modification, and elimination of files
public static void main(String[] args)
try
Path dir = Paths.get("D:/Temp/");
WatchService watcher = FileSystems.getDefault().newWatchService();
dir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey key;
while ((key = watcher.take())!=null)
for (WatchEvent<?> event : key.pollEvents())
WatchEvent.Kind<?> kind = event.kind();
@SuppressWarnings("unchecked")
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path fileName = ev.context();
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
if(kind==StandardWatchEventKinds.ENTRY_DELETE)
System.out.println("File Deleted " + fileName);
if (kind == StandardWatchEventKinds.ENTRY_MODIFY )
System.out.println("File Modified " + fileName);
boolean valid = key.reset();
if (!valid)
break;
catch (IOException ex)
System.err.println(ex);
}
When I edit a word file (TEST.docx
) within the folder that is being monitored and saved with changes, the following event result is displayed:
New File Added, file Name ~$TEST.docx
File Modified ~$TEST.docx
New File Added, file Name ~WRD0000.tmp
File Modified ~WRD0000.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0001.tmp
File Deleted ~WRD0000.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0001.tmp
New File Added, file Name ~WRD0002.tmp
File Modified ~WRD0002.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0003.tmp
File Deleted ~WRD0002.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0003.tmp
File Deleted ~WRL0003.tmp
File Deleted ~WRL0001.tmp
File Deleted ~$TEST.docx
Some events are caused by temporary files that are created by the Word application during this editing process.
Is there any way to filter the events to only get those from the word file (TEST.docx
) and ignore the events originating from temporary files?
Thanks
java watchservice
I am using the following code to motorize a folder, to get the events of creation, modification, and elimination of files
public static void main(String[] args)
try
Path dir = Paths.get("D:/Temp/");
WatchService watcher = FileSystems.getDefault().newWatchService();
dir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey key;
while ((key = watcher.take())!=null)
for (WatchEvent<?> event : key.pollEvents())
WatchEvent.Kind<?> kind = event.kind();
@SuppressWarnings("unchecked")
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path fileName = ev.context();
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
if(kind==StandardWatchEventKinds.ENTRY_DELETE)
System.out.println("File Deleted " + fileName);
if (kind == StandardWatchEventKinds.ENTRY_MODIFY )
System.out.println("File Modified " + fileName);
boolean valid = key.reset();
if (!valid)
break;
catch (IOException ex)
System.err.println(ex);
}
When I edit a word file (TEST.docx
) within the folder that is being monitored and saved with changes, the following event result is displayed:
New File Added, file Name ~$TEST.docx
File Modified ~$TEST.docx
New File Added, file Name ~WRD0000.tmp
File Modified ~WRD0000.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0001.tmp
File Deleted ~WRD0000.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0001.tmp
New File Added, file Name ~WRD0002.tmp
File Modified ~WRD0002.tmp
File Deleted TEST.docx
New File Added, file Name ~WRL0003.tmp
File Deleted ~WRD0002.tmp
New File Added, file Name TEST.docx
File Modified TEST.docx
File Modified ~WRL0003.tmp
File Deleted ~WRL0003.tmp
File Deleted ~WRL0001.tmp
File Deleted ~$TEST.docx
Some events are caused by temporary files that are created by the Word application during this editing process.
Is there any way to filter the events to only get those from the word file (TEST.docx
) and ignore the events originating from temporary files?
Thanks
java watchservice
java watchservice
edited Mar 7 at 18:59
Tomka Koliada
1,1301728
1,1301728
asked Mar 7 at 17:14
Manuel NunesManuel Nunes
32
32
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
In my application I filter them out simply by adding a if-condition:
...
final Path changed = (Path) event.context();
WatchEvent.Kind<?> kind = event.kind();
if (changed.toString().startsWith("TEST.docx"))
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
As far as I know WatchService monitors all registered events (in your case ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE) in all files in the folder. The other way is forking the WatchService source but I don't see what what benefits that solution would have compared to this simple solution.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55049450%2fwatchservice-api-events-change-editable-files-word-odt%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
In my application I filter them out simply by adding a if-condition:
...
final Path changed = (Path) event.context();
WatchEvent.Kind<?> kind = event.kind();
if (changed.toString().startsWith("TEST.docx"))
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
As far as I know WatchService monitors all registered events (in your case ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE) in all files in the folder. The other way is forking the WatchService source but I don't see what what benefits that solution would have compared to this simple solution.
add a comment |
In my application I filter them out simply by adding a if-condition:
...
final Path changed = (Path) event.context();
WatchEvent.Kind<?> kind = event.kind();
if (changed.toString().startsWith("TEST.docx"))
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
As far as I know WatchService monitors all registered events (in your case ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE) in all files in the folder. The other way is forking the WatchService source but I don't see what what benefits that solution would have compared to this simple solution.
add a comment |
In my application I filter them out simply by adding a if-condition:
...
final Path changed = (Path) event.context();
WatchEvent.Kind<?> kind = event.kind();
if (changed.toString().startsWith("TEST.docx"))
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
As far as I know WatchService monitors all registered events (in your case ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE) in all files in the folder. The other way is forking the WatchService source but I don't see what what benefits that solution would have compared to this simple solution.
In my application I filter them out simply by adding a if-condition:
...
final Path changed = (Path) event.context();
WatchEvent.Kind<?> kind = event.kind();
if (changed.toString().startsWith("TEST.docx"))
if(kind==StandardWatchEventKinds.ENTRY_CREATE)
System.out.println("New File Added, file Name " + fileName);
As far as I know WatchService monitors all registered events (in your case ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE) in all files in the folder. The other way is forking the WatchService source but I don't see what what benefits that solution would have compared to this simple solution.
answered yesterday
Veli-Matti SorvalaVeli-Matti Sorvala
212
212
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55049450%2fwatchservice-api-events-change-editable-files-word-odt%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown