0
我想寫一個基本的目錄監視器,打印一個文件是否被創建,更改或刪除。但是我無法顯示每個文件的'lastModified'時間。請參閱下面全碼:Java:WatchService:File.Lastmodified返回0
public static void main(String[] args) throws IOException, InterruptedException {
// TODO Auto-generated method stub
WatchService watcher = FileSystems.getDefault().newWatchService();
Path dir = Paths.get("C:\\Users\\User1\\Desktop\\test");
WatchKey key = dir.register(watcher,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY
);
for (;;) {
WatchKey key2 = watcher.take();
for (WatchEvent<?> event : key.pollEvents() ) {
WatchEvent.Kind<?> kind = event.kind();
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path filename = ev.context();
File fullFilename = filename.toFile();
System.out.println("Event: |"+kind+"| Filename: "+fullFilename.getName()+"|Time: "+fullFilename.lastModified());
if (fullFilename.exists()) {
System.out.println(fullFilename.getName()+" - Exists");
}
else {
System.out.println("fullFileName does not exist");
}
}
boolean valid = key.reset();
if (!valid) {
break;
}
}
}
的lastModified
方法返回0。我已經嘗試了測試fileFullname
對象是否實際存在,以及由於某種原因,它沒有。但是,當你使用fileFullname.getName()
時,它返回文件名就好了。
我在做什麼錯?
我感謝您的幫助,並提前致謝!
這是有幫助的,並解決了我的問題。 非常感謝您的幫助! – user2728488