# Zugriff auf Dateien im Filesystem überwachen



## erazor2106 (23. Jul 2012)

Hallo Leute,

ist es möglich mit Java die Zugriffe von Dateien auf einem Netzlaufwerk bzw. auf dem lokalen Rechner zu protokollieren? 
Z.B. Benutzer xyz öffnet im Netzwerk von seinem PC mit der IP 192.168.27.100 aus die Datei test.docx. Diese befindet sich in einem Ordner welche vom java-programm überwacht wird.

Gibt es hierfür Möglichkeiten?

Vielen Dank und viele Grüße erazor


----------



## fschk (24. Jul 2012)

nein , nein , nein und nochmals nein !

Warum in herrgottes Namen kommen immer wieder Leute auf die Idee mit Java eine Art "nativen File-Watcher" zu basteln. DAS GEHT NICHT ! Das ist Aufgabe des OS / Kernel und des Dateisystems. Und selbst wenn man das mit Java machen wollen würde müsste man JNI bzw JNA verwenden, und dann kann man sowas auch gleich komplett in C schreiben.


----------



## Guest2 (24. Jul 2012)

Moin,

was genau meinst Du mit "öffnen"?

Lesen: Wüsste ich auf Anhieb auch nicht.
Verändern: Kein Problem, gehört seit Java 7 zum Standardumfang.

(z.B.: Using Java 7 WatchService to Monitor Directories | Javalobby)

Viele Grüße,
Fancy


----------



## erazor2106 (24. Jul 2012)

@fschk: Warum regst du dich da so auf. Ein kurzes NEIN hätte es auch getan.

@Guest2: Das ist eine Anfrage von jemand anderem, nicht meine Idee. Es geht dabei zum einen darum eine allgemeine Statistik über Zugriffe zu erstellen und zum anderen dies möglichst auch Userbezogen loggen zu können.


----------



## Guest2 (24. Jul 2012)

Insbesondere das Nutzerbezogene dürfte auch nativ nicht einfach werden. Über das Dateisystem sollte man nativ zwar an die PID sowie den Nutzer, unter dem der Prozess läuft, kommen, wenn es sich dabei allerdings um den Zugriff eines externen über eine Netzwerkfreigabe handelt, nützt das nicht viel. Nur der Serverprozess weiß an wenn er die Daten gerade ausliefert.

Wenn es aber nur um Statistik geht, sollte sich (bei Windows) über die Gruppenrichtline die Objektzugriffsüberwachung so konfigurieren lassen, dass Dateizugriffe ins Eventlog eingetragen werden. Dieses könntest Du dann versuchen auszuwerten.

Bei Linux sollte sich Samba auch zu entsprechenden Logs überreden lassen.

Viele Grüße,
Fancy


----------



## andreT (24. Jul 2012)

Watching a Directory for Changes (The Java™ Tutorials > Essential Classes > Basic I/O)


----------

