diff --git a/src/main/java/rx/fileutils/FileSystemWatcher.java b/src/main/java/rx/fileutils/FileSystemWatcher.java index 18ce7b0..ebed745 100644 --- a/src/main/java/rx/fileutils/FileSystemWatcher.java +++ b/src/main/java/rx/fileutils/FileSystemWatcher.java @@ -142,22 +142,13 @@ private List> getEventsForCurrentFiles(Path directory) { Files.walkFileTree(directory, new SimpleFileVisitor() { @Override public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) { - events.add(new WatchEvent() { - @Override - public Kind kind() { - return ENTRY_CREATE; - } - - @Override - public int count() { - return 1; - } - - @Override - public Path context() { - return path; - } - }); + events.add(pathToWatchEvent(path)); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult preVisitDirectory(Path path, BasicFileAttributes attrs) { + events.add(pathToWatchEvent(path)); return FileVisitResult.CONTINUE; } }); @@ -167,6 +158,25 @@ public Path context() { return events; } + + private WatchEvent pathToWatchEvent(Path path) { + return new WatchEvent() { + @Override + public Kind kind() { + return ENTRY_CREATE; + } + + @Override + public int count() { + return 1; + } + + @Override + public Path context() { + return path; + } + }; + } } public static class Builder {