代码如下 | 复制代码 |
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; } } } } |
就是这么简单就可以对一个文件夹进行监控了。
模拟极限越野
模拟极限越野开着大巴在各种奇葩路况里送乘客。山路弯道多得让人
模拟火车
模拟火车让你当回真正的火车司机,得先学会看信号灯、操作控制杆
可口的披萨美味的披萨
可口的披萨美味的披萨带您体验经营一家披萨店的乐趣。游戏画风温
定制虚拟偶像最新版
定制虚拟偶像最新版是一款超级经典有趣的日本模拟装扮类型的手游
病娇模拟器手机版正版(yandere simulator)
病娇模拟器最新版手游是一款萌妹二次元模拟游戏,玩家在游戏中可