WatchService 可能存在不能再window工作
2021-04-23 09:57
标签: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 目录输入错误导致: WatchService 可能存在不能再window工作 标签:nta void 服务 default win dex path 问题 cat 原文地址:http://www.cnblogs.com/ZHMhello/p/7998376.html 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 }
下一篇:C#序列化与反序列化实例
文章标题:WatchService 可能存在不能再window工作
文章链接:http://soscw.com/index.php/essay/78472.html