A
WatchService仅监视
Path您注册的S。它不会递归地通过这些路径。
鉴于
/Root作为注册路径
/Root /Folder1 /Folder2 /Folder3
如果中有更改
Folder3,它将无法捕获。
您可以自己递归注册目录路径
private void registerRecursive(final Path root) throws IOException { // register all subfolders Files.walkFileTree(root, new SimpleFileVisitor<Path>() { @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { dir.register(watchService, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); return FileVisitResult.CONTINUE; } });}现在,
WatchService会通知的所有子文件夹中的所有更改
Path root,即。
Path您通过的论点。



