WatchService 可能存在不能再window工作

2021-04-23 09:57

阅读:356

标签:nta   void   服务   default   win   dex   path   问题   cat   

,java平台独立问题查看问题可解决方案:https://stackoverflow.com/questions/24306875/watchservice-in-windows-7-does-not-work

   远程操作不支持可行解决方案:https://stackoverflow.com/questions/15688543/watchservice-take-does-not-wait-on-windows-7-x64-while-watching-changes-in-th

 

 

目录输入错误导致:

 1 package chapter1_test;
 2 
 3 import java.io.IOException;
 4 import java.nio.file.FileSystems;
 5 import java.nio.file.Path;
 6 import java.nio.file.StandardWatchEventKinds;
 7 import java.nio.file.WatchEvent;
 8 import java.nio.file.WatchKey;
 9 import java.nio.file.WatchService;
10 
11 public class WatchFileService {
12     /**
13      * @param void
14      * @return void
15      */
16     public static void checkDirChanged(String _dir) {
17         try {
18             //得到默认的WatchService服务
19             WatchService watcher=FileSystems.getDefault().newWatchService();
20             Path dir=FileSystems.getDefault().getPath(_dir);
21             //为Path注册key,可选择的Kind> ENTAY_DELETE,ENTRY_CREATE,ENTRY_MODIFY 等
22             //将Path注册在变化检测名单中
23             WatchKey key=dir.register(watcher, java.nio.file.StandardWatchEventKinds.ENTRY_DELETE);
24             
25             while(true) {
26                 //一旦Watchkey到来,WatchEvent遍历
27                 key=watcher.take();
28 
29                 for(WatchEvent> event:key.pollEvents()) {
30                     //一旦Kind>类型为ENTRY_MODIFY,打印Home dir change
31                     if(event.kind()==StandardWatchEventKinds.ENTRY_DELETE) {
32                         System.out.println("Home dir changed");
33                     }
34                 }
35                 key.reset();
36             }
37         }catch(IOException e) {
38             
39         }catch(InterruptedException e) {
40             System.out.println(e.getMessage());
41         }
42     }
43     public static void main(String[] args) {
44         if(args.length) {
45             System.err.println("命令行参数==0");
46             System.exit(0);
47         }
48         //注意路径的输入,e.g:D:\\testFile,不到再加+"\\",在jvm中/自动转化成\
49         WatchFileService.checkDirChanged(args[0]);
50     }
51 }

 

WatchService 可能存在不能再window工作

标签:nta   void   服务   default   win   dex   path   问题   cat   

原文地址:http://www.cnblogs.com/ZHMhello/p/7998376.html


评论


亲,登录后才可以留言!