創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的網(wǎng)站制作、網(wǎng)站建設(shè)項目的能力。經(jīng)過十多年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。本篇文章給大家分享的是有關(guān)java項目中利用WatchService如何實現(xiàn)監(jiān)控文件夾,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
通過java7提供的WatchService API 實現(xiàn)對文件夾的監(jiān)控
package service; import config.Config; import java.io.IOException; import java.nio.file.*; import java.util.List; import java.util.concurrent.TimeUnit; public class WatchDirService { private WatchService watchService; private boolean notDone = true; public WatchDirService(String dirPath){ init(dirPath); } private void init(String dirPath) { Path path = Paths.get(dirPath); try { watchService = FileSystems.getDefault().newWatchService(); //創(chuàng)建watchService path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE); //注冊需要監(jiān)控的事件,ENTRY_CREATE 文件創(chuàng)建,ENTRY_MODIFY 文件修改,ENTRY_MODIFY 文件刪除 } catch (IOException e) { e.printStackTrace(); } } public void start(){ System.out.print("watch..."); while (notDone){ try { WatchKey watchKey = watchService.poll(Config.POLL_TIME_OUT, TimeUnit.SECONDS); //此處將處于等待狀態(tài),等待檢測到文件夾下得文件發(fā)生改變,返回WatchKey對象 if(watchKey != null){ List> events = watchKey.pollEvents(); //獲取所有得事件 for (WatchEvent event : events){ WatchEvent.Kind<?> kind = event.kind(); if (kind == StandardWatchEventKinds.OVERFLOW){ //當(dāng)前磁盤不可用 continue; } WatchEvent ev = event; Path path = ev.context(); if(kind == StandardWatchEventKinds.ENTRY_CREATE){ System.out.println("create " + path.getFileName()); }else if(kind == StandardWatchEventKinds.ENTRY_MODIFY){ System.out.println("modify " + path.getFileName()); }else if(kind == StandardWatchEventKinds.ENTRY_DELETE){ System.out.println("delete " + path.getFileName()); } } if(!watchKey.reset()){ //已經(jīng)關(guān)閉了進程 System.out.println("exit watch server"); break; } } } catch (InterruptedException e) { e.printStackTrace(); return; } } } }