![]() |
Readonly-Attribut und Windows XP
Hallo!
Ich bin noch Anfänger mit Delphi, hoffe daher, dass ich mit "Windows API" wenigstens das richtige Forum erwischt hab. Ich müsste eine Datei auf das Readonly-Attribut überprüfen, leider funktioniert das mit "FileIsReadOnly" nicht, da unter Windows XP damit nur überprüft wird, ob die Datei vorhanden ist oder nicht. Gibt es eine andere Möglichkeit unter Windows XP mittels Delphi festzustellen, ob eine Datei schreibgeschützt ist? Danke schon jetzt für jede Hilfe! Liebe Grüße Daniel |
Re: Readonly-Attribut und Windows XP
|
Re: Readonly-Attribut und Windows XP
Danke erstmal für die Antwort!
Das habe ich auch schon probiert, allerdings führt das bei Verwendung von faReadOnly zu genau demselben Ergebnis wie bei Verwendung von "FileIsReadOnly". Existiert die Datei NICHT wird bei meinem Programm ausgegeben, dass die Datei schreibgeschützt ist, existiert die Datei jedoch (egal ob readonly oder nicht) wird IMMER ausgegeben, dass sie NICHT schreibgeschützt ist. |
Re: Readonly-Attribut und Windows XP
Welche Delphiversion? Was für ein Dateisystem?
|
Re: Readonly-Attribut und Windows XP
Turbo Delphi Explorer 2006
NTFS |
Re: Readonly-Attribut und Windows XP
Moin Daniel,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Das die genannte Funktion bei einer nicht existierenden Datei immer ausgibt, dass sie ReadOnly ist ist nachvollziehbar. Die Funktion FileGetAttr ist nur ein Wrapper um die API-Funktion GetFileAttributes. Diese Funktion gibt im Fehlerfalle -1 zurück, es sind also alle Bits gesetzt, so dass jede Prüfung auf ein Attribut dieses als gesetzt erkennt. Man muss erst einmal prüfen, ob der Funktionsaufruf überhaupt erfolgreich war (Rückgabewert <> -1) bevor man versucht daraus Attribute abzuleiten. Existiert die Datei nicht, müsste ein anschliessender Aufruf von GetLastError den Wert 2 zurückgeben (ERROR_FILE_NOT_FOUND). Das andere Problem kann ich im Moment nicht nachvollziehen. |
Re: Readonly-Attribut und Windows XP
Hallo nochmal!
Danke, ich habs jetzt noch einmal probiert und mittlerweile hab ichs hinbekommen, so dass der Schreibschutz richtig erkannt wird. Jetzt hab ich aber auch schon das nächste Problem, an das ich vorher noch gar nicht gedacht habe: Es müsste natürlich auch noch erkannt werden, ob der jeweilige Benutzer das Schreibrecht auf die Datei hat (laut den Windows-Sicherheitsrichtlinien). Wie kann ich das hinbekommen, ich hab schon mal ein bisschen gesucht und bin dabei auf "GetFileSecurity" gestoßen. Ist das das Richtige für meinen Zweck und vor allem: wie wende ich die Routine an? Nochmal ein großes Dankeschön an euch! liebe Grüße Daniel |
Re: Readonly-Attribut und Windows XP
|
Re: Readonly-Attribut und Windows XP
Könntest du bitte für die neue Frage ein neues Thema eröffnen? Danke :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz