.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
3
Hallo,

ich möchte aus Java heraus bestimmte Verzeichnisse und/oder Dateien auf Veränderungen überwachen, d.h. in meinem Programm möchte ich über Veränderungen informiert werden, sobald sie auftreten.
Gibt es direkt in Java dafür Methoden/Klassen bei denen man sich mit einem Listener registrieren kann und dann bei Auftreten dieser Listener gerufen wird oder geht es nur über Timer (in bestimmten Abständen Zustand der Datei überprüfen mit CRC o.Ä. ...)

Danke,
Christoph
07.09.09
pocketdevel 323 1 6
Kommentieren - Für Rückfragen oder Anmerkungen
2 Antworten
2
Dazu gibt es dir Bibliothek jnotify. Diese setzt auf nativen code auf, ist aber für verschiedene Plattformen verfügbar, und somit "fast" portabel.

http://jnotify.sourceforge.net/
07.09.09
keinhaar 198 1 3
keinhaar 198 1 3
Danke, diese Bibliothek ist schon mal ein guter Start. Ich werd' sie mal demnächst ausprobieren. Es ist nur nicht ganz ersichtlich, ob sie auch nativ unter 64bit Systemen und 64bit JVM läuft. Mal schauen...

Stichwort portabel: Eine reine Lösung in Java, denke ich, wird's kaum geben.
pocketdevel 08.09.09
0
Die Timerloesung halte ich unter praktischen Erwaegungen fuer ausreichend, wenn Portabilitaet, evtl. auch die Ueberwachung von nicht-Filesystem-gebundenen Resourcen (z.B. URLs, Inhalte von Archiven, etc) gewuenscht ist, und sich die Menge der Ueberwachten Ressourcen in Grenzen haelt.

Je kuerzer die Timer, desto geringer das Risiko, dass sich zwischen zwei Timerevents eine Ressource mehr als einmal aendert. Wenn es nun nur darum geht, 'irgendeine' Aenderung festzustellen, dann koennte es sogar egal sein, ob sich die Ressource nur einmal oder mehrfach geandert hat. Bliebe noch die Moeglichkeit, dass die Ressource zwischen zwei Events kurz geaendert, dann jedoch schnell wieder zurueckgestetzt wird. Die Timerloesung wuerde das nicht bemerken, allerdings hat ein solches Szenario kaum einen praktischen Nutzen.

Der groesste Nachteil der Timerloesung ist allerdings, dass man sich 'merken' muss, wie die Ressourcen zu Beginn der Ueberwachung aussehen (z.B. speichern von Pfad, Name, Datum, Zugriffsrechten) um bei jedem Timerevent vergleichen zu koennen. Von daher eignet sich die Timerloesung eher fuer einzelne Verzeichnisse als fuer ganze Festplatten.
08.09.09
Andreas_D 21 1
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt hier damit registrieren.


OpenID-Provider anklicken: