4 Stimmen

Die Überwachung von Ordnern innerhalb von Ordnern mit einem Java WatchService

Ich probiere WatchService mit Java 7 aus, um einen Ordner zu überwachen. Ich möchte, dass er alle Dateien oder Ordner überwacht, die dem mit WatchService registrierten Pfad hinzugefügt werden.

Wenn ich einen Ordner zum registrierten Pfad hinzufüge, erkennt er ihn korrekt als ENTRY_CREATE und gibt den Namen des Ordners in watchEvent.context() zurück. Wenn ich dann einen weiteren Ordner zu diesem Ordner hinzufüge, wird dies erneut erkannt, jedoch gibt watchEvent.context() den gleichen Ordner und ENTRY_MODIFY zurück, da dieser Ordner durch Hinzufügen eines weiteren Ordners modifiziert wurde.

Also verstehe ich das, weiß aber nicht, ob ich jeden Ordner in der Struktur registrieren sollte oder nur den obersten Ordner und auf CREATE und MODIFY hören sollte.

4voto

Devon_C_Miller Punkte 16058

Es gibt keine direkte Unterstützung dafür plattformübergreifend. Für Windows gibt es ein ExtendedWatchEventModifier.FILE_TREE, das ein Verzeichnis rekursiv überwacht. Es gibt jedoch keine äquivalente Funktionalität auf Mac oder Linux. Beachten Sie auch, dass ExtendedWatchEventModifier eine Erweiterung ist und nicht Teil der Standarddefinition.

Sie müssen auf CREATE und DELETE hören. Wenn das erstellte (gelöschte) Objekt ein Verzeichnis ist, müssen Sie ein (entfernen) einen neuen Überwachung auf das Unterverzeichnis hinzufügen (entfernen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X