Bonjour,

je veux utiliser WatchService et Tailer en même temps, j’ai donc écris les lignes suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
                AgentTailerListener listener = new AgentTailerListener();
                Tailer tailer;
 
                WatchService watcher = FileSystems.getDefault().newWatchService();
                while (true) {
			WatchKey watchKey;
			watchKey = Paths.get("/tmp").register(watcher, ENTRY_CREATE);
			watchKey = watcher.take();
 
			for (WatchEvent<?> event : watchKey.pollEvents()) {
				if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
					tailSource = event.context().toString();
					System.out.println(tailSource);
					File file = new File(tailSource);
					tailer = TailerFactory.createTailer(file, listener);
					(new Thread(tailer)).start();
				}
			}
 
			watchKey.reset();
		}
Néanmoins, ce programme m’affiche
.goutputstream-44TY1X
text.log~
text.log

Mais je veux récupérer uniquement le text.log.

Dois-je utiliser une solution à base de scanner (ou équivalent) ou est-ce mon code qui pourrait être résolu en modifiant quelques trucs ?