| 代码如下 | 复制代码 |
packageservice;
importconfig.Config; importjava.io.IOException; importjava.nio.file.*; importjava.util.List; importjava.util.concurrent.TimeUnit;
publicclassWatchDirService { privateWatchService watchService; privatebooleannotDone =true;
publicWatchDirService(String dirPath){ init(dirPath); }
privatevoidinit(String dirPath) { Path path = Paths.get(dirPath); try{ watchService = FileSystems.getDefault().newWatchService();//创建watchService path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE);//注册需要监控的事件,ENTRY_CREATE 文件创建,ENTRY_MODIFY 文件修改,ENTRY_MODIFY 文件删除 }catch(IOException e) { e.printStackTrace(); } }
publicvoidstart(){ System.out.print("watch..."); while(notDone){ try{ WatchKey watchKey = watchService.poll(Config.POLL_TIME_OUT, TimeUnit.SECONDS);//此处将处于等待状态,等待检测到文件夹下得文件发生改变,返回WatchKey对象 if(watchKey !=null){ List for(WatchEvent event : events){ WatchEvent.Kind> kind = event.kind(); if(kind == StandardWatchEventKinds.OVERFLOW){ //当前磁盘不可用 continue; } WatchEvent Path path = ev.context(); if(kind == StandardWatchEventKinds.ENTRY_CREATE){ System.out.println("create "+ path.getFileName()); }elseif(kind == StandardWatchEventKinds.ENTRY_MODIFY){ System.out.println("modify "+ path.getFileName()); }elseif(kind == StandardWatchEventKinds.ENTRY_DELETE){ System.out.println("delete "+ path.getFileName()); } } if(!watchKey.reset()){ //已经关闭了进程 System.out.println("exit watch server"); break; } } }catch(InterruptedException e) { e.printStackTrace(); return; } } } } | |
就是这么简单就可以对一个文件夹进行监控了。
原神祈愿模拟器最新版
原神祈愿模拟器手机版是一款完整汉化的趣味原神抽卡模拟小游戏,
宝宝森林美食完整版
宝宝森林美食游戏最新版是一款十分有趣的休闲益智游戏,帮助宝宝
g沙盒仇恨官方英文版(gorebox)
G沙盒仇恨英文原版是一款最近非常火热的沙盒模拟类游戏,在这里
迷你世界测试服最新版2024
迷你世界测试服2021最新版,即迷你世界的先遣服版本,用户能
闪耀暖暖最新版2024
闪耀暖暖手游这是非常好玩的换装手游,游戏内容丰富有趣,游戏环