Exklusiver Zugriff?
-
Hallo!
Ich möchte prüfen, ob Dateien durch einen anderen Prozess exklusiv geöffnet sind.
Gibt es eine andere Möglichkeit als zu versuchen die Datei zu öffnen und dabei eventuell aufgetretene Fehler auszuwerten?
Gruß, Lothar.
-
Sowada schrieb:
Ich möchte prüfen, ob Dateien durch einen anderen Prozess exklusiv geöffnet sind.
Gibt es eine andere Möglichkeit als zu versuchen die Datei zu öffnen und dabei eventuell aufgetretene Fehler auszuwerten?
Leider nicht. Egal welchen Umweg Du nimmst (z.B. alle Prozesse ermitteln, welche die Datei verwenden), es könnte sein, dass besagte Datei WÄHREND der Ausführung des "Umweg"-Codes von einem anderen Prozess exklusiv geöffnet wurde (race condition). Aber was stört Dich an der klassischen Herangehensweise?
-
Wenn man eine Datei öffnet und das Ergebnis prüft, dauert es eine gewisse Zeit.
Macht man dies bei sehr vielen Dateien summieren sich die einzelnen Zeiten.
Dies ist bei unserem derzeitigen Programmstand unschön.Danke für Deine Antwort, L.
-
Sowada schrieb:
Wenn man eine Datei öffnet und das Ergebnis prüft, dauert es eine gewisse Zeit.
Macht man dies bei sehr vielen Dateien summieren sich die einzelnen Zeiten.
Dies ist bei unserem derzeitigen Programmstand unschön.Danke für Deine Antwort, L.
Gern. Sorry, mir fällt keine Lösung ein, die schneller und genauer sein könnte. Aber vielleicht haben ja die anderen Forummitglieder eine Idee?
-
Du könntest mit einem FileSystemWatcher
http://msdn.microsoft.com/de-de/library/system.io.notifyfilters(VS.80).aspx
der auf das LastAccess-Ereignis warted.
Im zweiten Schritt prüfst Du dann gezielt ob die Datei die gerade geöffnet wurde exklusiv geöffnet wurde mit dem Dir bekannten Verfahren.
-
loks schrieb:
Du könntest mit einem FileSystemWatcher
http://msdn.microsoft.com/de-de/library/system.io.notifyfilters(VS.80).aspx
der auf das LastAccess-Ereignis warted.
Im zweiten Schritt prüfst Du dann gezielt ob die Datei die gerade geöffnet wurde exklusiv geöffnet wurde mit dem Dir bekannten Verfahren.
Gute Idee, wenn genug Zeit zur Verfügung steht.
Die Überwachung einer Datei müßte sich über einen gewissen Zeitraum erstrecken, um mitzubekommen ob sie geöffnet wurde. Der größtmögliche Zeitraum wäre seit dem Hochfahren des Rechners.