Hallo!
Greift ein Programm auf Dateien oder Ordner zu, die für den aktuellen Nutzer nicht freigegeben sind kommt es zu einer EFOpenError
Exception:
Code:
stream := TFileStream.Create('C:\SomeFile.abc', fmOpenRead or fmShareDenyNone);
Leider kann ich aus der
Exception nicht den Grund für den Fehler erkennen. Es kann wie beschrieben an fehlenden Zugriffsrechten liegen, genauso gut könnte es aber auch sein, dass die Datei bereits geöffnet ist und kein weiterer Zugriff erlaubt ist.
Der Message-Text der
Exception gibt zwar genauere Auskunft, aber das ist keine verlässliche Methode. Unter anderen Windows Versionen lautet die Nachricht vielleicht nicht mehr "Zugriff verweigert" sondern "Zugriff wurde verweigert". Schon schlägt ein Test fehl. Bei anderen Sprachversionen von Windows funktioniert der Test natürlich nie.
Gibt es also eine Möglichkeit die genaue Ursache dafür zu ermitteln, dass der Zugriff nicht möglich ist?
Besten Dank!