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










0















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










share|improve this question




























    0















    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










    share|improve this question


























      0












      0








      0








      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










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 7 at 18:59









      Tomka Koliada

      1,1301728




      1,1301728










      asked Mar 7 at 17:14









      Manuel NunesManuel Nunes

      32




      32






















          1 Answer
          1






          active

          oldest

          votes


















          1














          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.






          share|improve this answer






















            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
            );



            );













            draft saved

            draft discarded


















            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









            1














            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.






            share|improve this answer



























              1














              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.






              share|improve this answer

























                1












                1








                1







                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.






                share|improve this answer













                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.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered yesterday









                Veli-Matti SorvalaVeli-Matti Sorvala

                212




                212





























                    draft saved

                    draft discarded
















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme

                    Identity Server 4 is not redirecting to Angular app after login2019 Community Moderator ElectionIdentity Server 4 and dockerIdentityserver implicit flow unauthorized_clientIdentityServer Hybrid Flow - Access Token is null after user successful loginIdentity Server to MVC client : Page Redirect After loginLogin with Steam OpenId(oidc-client-js)Identity Server 4+.NET Core 2.0 + IdentityIdentityServer4 post-login redirect not working in Edge browserCall to IdentityServer4 generates System.NullReferenceException: Object reference not set to an instance of an objectIdentityServer4 without HTTPS not workingHow to get Authorization code from identity server without login form

                    2005 Ahvaz unrest Contents Background Causes Casualties Aftermath See also References Navigation menue"At Least 10 Are Killed by Bombs in Iran""Iran"Archived"Arab-Iranians in Iran to make April 15 'Day of Fury'"State of Mind, State of Order: Reactions to Ethnic Unrest in the Islamic Republic of Iran.10.1111/j.1754-9469.2008.00028.x"Iran hangs Arab separatists"Iran Overview from ArchivedConstitution of the Islamic Republic of Iran"Tehran puzzled by forged 'riots' letter""Iran and its minorities: Down in the second class""Iran: Handling Of Ahvaz Unrest Could End With Televised Confessions""Bombings Rock Iran Ahead of Election""Five die in Iran ethnic clashes""Iran: Need for restraint as anniversary of unrest in Khuzestan approaches"Archived"Iranian Sunni protesters killed in clashes with security forces"Archived