如何检测java中的文件系统已经改变

Alf*_*red 4 java filesystems file-io

我想知道如何在java中有效地实现文件系统更改?假设我在文件夹中有一个文件并修改该文件.我希望尽快通过java通知这个变化(如果可能的话,不经常轮询).

因为我认为我可以每隔几秒钟调用java.io.file.lastModified但我根本不喜欢该解决方案的声音.

alfred@alfred-laptop:~/testje$ java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 8

看一下执行此类监控的JNotify.

Java 7将为这类工作提供一些更高级的API(WatchService),这将消除对支持此操作的操作系统的轮询.

  • 实际上JNotify只调用Win,OS X和Linux的OS特定库.它不支持其他操作系统,也没有轮询机制.Java 7 WatchService与JNotify基本相同,但如果没有要使用的文件系统本地监视工具,它将回退到轮询. (2认同)