我沒法給你源碼,但可以給你思路:
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出江陽免費(fèi)做網(wǎng)站回饋大家。
【最簡單粗暴的】
1. 寫一個(gè)死循環(huán)
2. sleep 個(gè) 100 毫秒
3. 第一次啟動(dòng)建立一個(gè)HashMapFile, Date,掃描所有文件并讀取創(chuàng)建日期記錄下來(包括子文件夾)
4. 記錄全部文件的數(shù)量 fileCount, lastFileCount
5. 檢查是否數(shù)量有變,如果木有就沒有新增文件
6. 如果有變化,。。。。你懂的,再掃找出不在HashMap里面的就是新增的了
【特殊參考】
參考tomcat、jboss這類服務(wù)器軟件如何掃面檢測部署文件夾下面文件變動(dòng)的
【高階】
參考防毒軟件設(shè)計(jì)原理,截獲系統(tǒng)IO,有對(duì)你指定文件夾的Access操作時(shí),按需記錄
我曾經(jīng)做過類似的系統(tǒng),也是采用Java實(shí)現(xiàn)的,在編程中用到第三方軟件包---Jpcap,因?yàn)镴pcap為實(shí)現(xiàn)流量監(jiān)控和數(shù)據(jù)包(TCP包,UDP包,IP包,ICMP包等)提供一系列的接口和類,具體詳情請(qǐng)E-mail:xhwdy26@163.com,本人可以提供源碼,但源碼需要修改一下,也可以在網(wǎng)上搜索Jpcap的DEMO,里面也有相關(guān)的代碼。
在Eclipse中查看Java類庫的源代碼,可以通過Ctrl+鼠標(biāo)左鍵的方式來完成;在下載JDK并安裝的時(shí)候,會(huì)有一個(gè)src.zip文件,此文件就是Java類庫的源碼。但是有時(shí)候,會(huì)出現(xiàn)源碼未找到的問題,此時(shí)可以通過對(duì)其設(shè)置來解決。
以JDK1.8為例,查看一下src.zip文件
如果發(fā)現(xiàn)找不到源代碼,則進(jìn)行設(shè)置
點(diǎn)擊Attach Source按鈕,彈出視圖,把JDK下的src.zip文件傳入點(diǎn)擊OK即可
此時(shí)按住Ctrl+鼠標(biāo)左鍵指向Java類庫當(dāng)中的類,就可以查看類的源代碼
以O(shè)bject類為例演示
關(guān)于API即所謂的幫助文檔,可以在Oracle公司官網(wǎng)進(jìn)行下載或查看
4.1 API 1.6版本 下載網(wǎng)址
4.2 API 1.7版本 下載網(wǎng)址
注意:下載之后的zip文件,解壓之后都是英文狀態(tài)的幫助文檔!
這些功能僅僅依靠java無法完成,這不是java的擅長方向,如果你真的非得要用java,可以用java原始接口接駁c/c++組件進(jìn)行非托管編程。
您好,提問者:
至于這個(gè)是關(guān)于計(jì)算的屬性問題了,要java調(diào)用相關(guān)控件,而且還要經(jīng)過Scoke的書寫,這個(gè)是有難度的。
java 要訪問 usb 設(shè)備,通常要自己寫c/c++代碼,然后再用 java 訪問這些組件,以達(dá)到控制usb設(shè)備的目的。但現(xiàn)在有一個(gè)開源組件 libusb 幫我們做好了訪問usb設(shè)備的封裝(包括windows、linux等平臺(tái))。我們用 java 訪問usb 設(shè)備時(shí),可以通過訪問 libusb 組件提供的接口即可。要了解這個(gè)組件的 java 部分的 Demo、API等,可以訪問這里:
使用這個(gè)組件最重要的意義在于:
首先,你不再需要在 win、linux 等平臺(tái)上寫 c/c++ 等 native 組件,甚至,你不需要知道 jni 怎么寫;
其次,使用這個(gè)組件,你可以訪問所有的 usb 設(shè)備,當(dāng)然,前提條件是你必須知道 usb 設(shè)備的相關(guān)指令(我當(dāng)前就用這個(gè)組件,直接發(fā)usb能接受的命令,去控制我的指紋儀來工作)
最后,如果你的 usb 設(shè)備沒有驅(qū)動(dòng)程序,比如,你的 usb 設(shè)備是自己研制出來的,還沒來得及為各種平臺(tái)寫驅(qū)動(dòng)程序,你可以用這個(gè)組件提供驅(qū)動(dòng)程序
從: 下載 libusb-win32-bin-1.2.2.0.zip
從 下載 ch.ntb.usb-0.5.9.jar 和 LibusbJava_dll_0.2.4.0.zip
安裝 libusb-win32:
1)、解壓 libusb-win32-bin-1.2.2.0.zip;
2)、把目錄:\bin\x86 下的 libusb0_x86.dll 復(fù)制到 windows/system32 目錄下,并改名為:libusb0.dll;
3)、把目錄:\bin\x86 下的 libusb0.sys 復(fù)制到 windows/system32/drivers 目錄下
4)、運(yùn)行 install-filter-win.exe ,從中選擇安裝你要訪問的 usb 設(shè)備
5)、運(yùn)行 testlibusb-win.exe,有正確的提示信息。如下圖:
注意:如果你運(yùn)行第4)步時(shí),出現(xiàn)無法安裝libusb0服務(wù)、無法找到文件等錯(cuò)誤,或者運(yùn)行第5)步時(shí),界面中“Driver version:”后面的版本號(hào)是,-1.-1 -1 ...這些情況,說明你的安裝不正常。原因可能是因?yàn)槟愕膗sb設(shè)備是新安裝的,且你沒有重啟計(jì)算機(jī)。你重啟一下計(jì)算機(jī),再進(jìn)行上述步驟,應(yīng)該就可以了。
把 LibusbJava.dll 復(fù)制到 windows/system32 目錄下
這時(shí),到達(dá) ch.ntb.usb-0.5.9.jar 所在的目錄,運(yùn)行: java -jar ch.ntb.usb-0.5.9.jar,這樣就會(huì)出來一個(gè)java swing做的窗口,如下圖。
當(dāng)右鍵點(diǎn)擊倒數(shù)第二級(jí)的節(jié)點(diǎn)的時(shí)候,又會(huì)彈出新的窗口,在這個(gè)彈出窗口里,你可以直接發(fā)送一些16進(jìn)制的代碼給 usb 設(shè)備。但值得注意的是,這個(gè)窗口的代碼寫得有問題,其對(duì)16進(jìn)制的代碼轉(zhuǎn)換為真正要發(fā)送的代碼時(shí),轉(zhuǎn)換的是錯(cuò)誤的代碼。這個(gè)錯(cuò)誤可以自己下載源碼,更正即可。錯(cuò)誤的類及方法是:
TestApp.java 中的方法:byte[] parseByteArray(String s);更正的代碼可以參考如下代碼:
Java代碼
重新編譯后,替換掉這個(gè)類,即可。
byte[] parseByteArray(String s) {
String[] hexs = s.split(" ");
byte[] bytes = new byte[hexs.length];
if(hexs.length 0){
int i = 0;
for(String hex : hexs){
String s1 = hex.substring(2);
bytes[i] = (byte)(Integer.parseInt(s1, 16));
i++;
}
}
return bytes;
}