作者rudolf1238 (Yo)
看板java
標題Re: [問題] 如何查看目錄內檔案有改變?
時間Fri Aug 24 13:16:15 2012
※ 引述《yeld (yeld)》之銘言:
: 你需要的是能捕捉作業系統上的檔案操作行為,可以參考 JNotify
: http://jnotify.sourceforge.net/
: 當監控的目錄下有任何的檔案操作行為發生時,JNotify 會產生對應的 event 給你,
: 共有 Created, Deleted, Modified, Renamed 四種 event。
: 而你的程式在收到這些 event 後再自行判斷異動狀況,例如計算 MD5 資訊,來決定
: 檔案內容是否有變更。
: ※ 引述《rudolf1238 (Yo)》之銘言:
: : 大家好,小弟最近要實作類似Dropbox的系統,將檔案備份到雲端,
: : 所以要比較兩資料夾內的檔案是否有差異或經過變更??
: : 在JAVA中似乎沒有API能做到諸如此類的功能?
: : 目前是比較熟知Win32 API有直接的函式(如:ReadDirectoryChanges API)
: : 請問大家有知道類似的API可套在JAVA上的嗎? 感謝~~
感謝板友提供JNotify的訊息讓小弟知道,
但下載下來後想要實作卻遇到了問題,
在官方網站上的example code未import函式庫,直接使用
int mask = JNotify.FILE_CREATED |
JNotify.FILE_DELETED |
JNotify.FILE_MODIFIED |
JNotify.FILE_RENAMED;
但在Eclipse上卻出現錯誤: JNotify can't be resolved to a variable
依照google上一些網站的描述(如:
http://simonlei.iteye.com/blog/631092)
我把解壓縮後的jnotify.dll與jnotify_64bit.dll都丟進
C:\Program Files\Java\jdk1.7.0_01\bin中了,但還是無法解決此問題,
請問各位我是否遺漏了甚麼步驟呢? 謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.54.165
推 superlubu:人家沒 import 是因為同一個 package. 罷(?) 08/24 15:22
→ rudolf1238:順利解決了,多加import net.contentobjects.jnotify.* 08/24 18:38
→ rudolf1238:即可,謝謝大家。 08/24 18:39
→ qrtt1:唔,eclipse 有自動 import,熱鍵是ctrl shift o 08/25 00:35