В JAVA Я буду смотреть каталог с помощью WatchService.Использование WatchService в JAVA. Могу ли я смотреть подкаталог одновременно?
Например, если я смотрю/пользователи/монитор, WatchService может смотреть только одну директорию.
Но я хочу смотреть каждый подкаталог «в то же время»
watch /users/monitor
/users/monitor/a
/users/monitor/b
...
Как я могу закодировать? T_T
--------------------------- код ----------------- --------------
package testpack;
import java.nio.file.*;
import java.util.List;
import java.io.*;
class DirectoryFilter implements FileFilter {
public boolean accept(File file) {
return file.isDirectory();
}
}
public class DirectoryWatchExample {
public static void testForDirectoryChange(Path myDir) {
while (true) {
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event : events) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
System.out.println("Created: "
+ event.context().toString());
}
if (event.kind() == StandardWatchEventKinds.ENTRY_DELETE) {
System.out.println("Delete: "
+ event.context().toString());
}
if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
System.out.println("Modify: "
+ event.context().toString());
}
}
} catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
}
public static void main(String[] args) {
Path myDir = Paths.get("https://stackoverflow.com/users/heejoongkim/monitor");
// define a folder root
System.out.println("Monitor Start");
File dir = new File("https://stackoverflow.com/users/heejoongkim/monitor");
testForDirectoryChange(myDir);
}
}
--------------------------- код- ------------------------------
Я не вижу, как это может иметь 2 upvotes и комментариев и ответов. Этот вид кажется дубликатом http://stackoverflow.com/questions/5608234/how-can-i-watch-subdirectory-for-changes-with-watchservice-java?rq=1 – mattias