ich suche nach einer Idee, wie man eine Dateiüberwachung im vb.net
realisieren kann. Hintergund ist, dass auf einem Rechner zwei Dateien immer
wieder gesperrt sind, wenn meine Anwendung darauf zugreift. Dies abzuwarten
oder abzufangen ist eine Sache, aber ich würde gerne wissen, wer das ist. Da
der Effekt nur ab und zu auftritt (1-2 Tage) möchte ich ein Programm
schreiben, dass entweder die Dateien oder aber die Prozesse überwacht und bei
Zugriff auf die beiden Dateien eine LOG-Datei schreibt.
Wäre super, wenn mir jemand einen Tip geben könnte.
Mit freundlichen Grüßen
Werner
Module Module1
WithEvents fsw as IO.FileSystemWatcher
Sub Main
fsw = new IO.FileSystemWatcher(IO.Path.GetTempPath)
fsw.enableRaisingEvents = true
end Sub
Dann über Prozeduren wie z. B.
Public Sub fsw_changed(ByVal sender as Object, ByVal e as
System.IO.FileSystemEventArgs) Handles fsw.changed
'hier code der ausgeführt werden soll
End Sub
End Module
das File überwachen. Falls Du nur eine bestimmte Datei überwachen willst,
musst Du noch die Filter-Eigenschaft einstellen.
Gruß
Lars Breiter
"Werner A. Schließmann" schrieb:
> ich suche nach einer Idee, wie man eine Dateiüberwachung im vb.net
in .NET dabei:
FileSystemWatcher
(entspricht Win32: ReadDirectoryChangesW -> MSDN)
> oder abzufangen ist eine Sache, aber ich würde gerne wissen, wer das ist.
mit Win32 (oder gar .NET) alleine ist AFAIK nicht feststellbar,
welcher Prozess/User eine Datei öffnet!
Ausnahme:
Falls Datei via Netzwerk-Freigabe geöffnet wurde,
dann Win32: NetFileEnum
(somit .NET PInvoke nötig)
http://groups.google.de/group/microsoft.public.de.german.entwickler.dotnet.vb/browse_frm/thread/dc3c70e266467392/e983500de1413b7f
Alles weitere braucht einen sehr speziellen (undokumentierte APIs!)
Kernel-Device-Driver, etwas wie in
http://www.sysinternals.com/Utilities/Filemon.html
Möglicherweise kann man etwas ähnliches mit dem 'normalen' (-> Windows-Handuch, MSDN)
NTFS 'Auditing' machen (schreibt Event-Log Einträge).
(zu auditing gibt es aber [noch?] kein .NET Support)
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Werner A. Schließmann schrieb:
> ich suche nach einer Idee, wie man eine Dateiüberwachung im vb.net
> realisieren kann. Hintergund ist, dass auf einem Rechner zwei Dateien immer
> wieder gesperrt sind, wenn meine Anwendung darauf zugreift. Dies abzuwarten
> oder abzufangen ist eine Sache, aber ich würde gerne wissen, wer das ist.
Geht wohl nur über Low-Level-Treiber-Programmierung.
Vergleiche:
http://groups.google.to/groups?threadm=OBSvSYMTFHA.3848%40TK2MSFTNGP10.phx.gbl
Gruß
Arne Janning