Laden...

Dateizugriff feststellen?

Erstellt von DiscMaster vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.220 Views
DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren
Dateizugriff feststellen?

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

_
83 Beiträge seit 2007
vor 17 Jahren

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

2.223 Beiträge seit 2005
vor 17 Jahren

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

DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren

@_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

DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren

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

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo DiscMaster,

ich denke lesende Zugriffe meldet dir der FileSystemWatcher nicht.

herbivore

DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren

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

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo DiscMaster,

hm, muss auch irgendwie anders gehen: http://www.microsoft.com/technet/sysinternals/FileAndDisk/Filemon.mspx . Aber wie?

herbivore

DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren

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

B
1.529 Beiträge seit 2006
vor 17 Jahren

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.