Hey Leute,
ich habe vor ein programm zu schreiben das eine Ordnerstruktur überwacht und mir sofort bescheid gibt wenn auf eine Datei zugegriffen wird, und mir auch die datei nennt. welches program auf die datei zugreift spielt dabei keine rolle.
lässt sich das irgendwie realisieren?
Gruß DiscMaster,
PS.: mit dem FileSystemWatcher vielleicht irgendwie? (wenn ja wie?)
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
Hallo,
Du könntest z.B. (unter Verwendung eines Timers) die Dateien des Verzeichnises einzeln durchlaufen und File.GetLastAccsessTime() in einer ArrayList speichern. Ändert sich der Wert beim nächsten Durchlauf dann...
mfg _ms
Hallo DiscMaster,
@_ms viel zu aufwendig
ja, der FileSystemWatcher ist das was du brauchst
Infos unter:
http://msdn2.microsoft.com/de-de/library/system.io.filesystemwatcher(VS.80).aspx
mfg
@_ms
ai, logisch.... aber ist das nicht bisschen hart für die performance? das frisst doch wie sau oder?
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
ich habs auch schon mal mit dem filesystemwatcher probiert...aber ich bin hängen geblieben...in deinem habe ich jetzt auch nur beispiele für "renamed, created, changed, deleted" gefunden....welches ereignis wird denn ausgelöst wenn n prog auf die datei zugreift?
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
Hallo DiscMaster,
ich denke lesende Zugriffe meldet dir der FileSystemWatcher nicht.
herbivore
also doch so wie es _ms gesagt hat?
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
Hallo DiscMaster,
hm, muss auch irgendwie anders gehen: http://www.microsoft.com/technet/sysinternals/FileAndDisk/Filemon.mspx . Aber wie?
herbivore
Yipeeee, ich habs rausgefunden: doch mit dem FileSystemWatcher! Es lässt sich eine Eigenschaft festlegen die einen Filter für das Changed-Ereignis darstellt: NotifyFilter.
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
MSDN Lib:
There are several types of changes you can watch for in a directory or file. For example, you can watch for changes in Attributes, the LastWrite date and time, or the Size of files or directories. This is done by setting the NotifyFilter property to one of the NotifyFilters values. For more information on the type of changes you can watch, see NotifyFilters.
NotifyFilters Enumeration
Specifies changes to watch for in a file or folder.
...
Members
Member name - Description
Attributes - The attributes of the file or folder.
CreationTime - The time the file or folder was created.
DirectoryName - The name of the directory.
FileName - The name of the file.
LastAccess - The date the file or folder was last opened.
LastWrite - The date the file or folder last had anything written to it.
Security - The security settings of the file or folder.
Size - The size of the file or folder.