AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Readonly-Attribut und Windows XP
Thema durchsuchen
Ansicht
Themen-Optionen

Readonly-Attribut und Windows XP

Ein Thema von Skeeder · begonnen am 3. Jan 2009 · letzter Beitrag vom 4. Jan 2009
Antwort Antwort
Skeeder

Registriert seit: 3. Jan 2009
4 Beiträge
 
#1

Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 08:33
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 08:38
Indem man die dateiattribute auswertet
http://www.delphibasics.co.uk/RTL.asp?Name=FileGetAttr
Markus Kinzler
  Mit Zitat antworten Zitat
Skeeder

Registriert seit: 3. Jan 2009
4 Beiträge
 
#3

Re: Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 09:56
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 09:59
Welche Delphiversion? Was für ein Dateisystem?
Markus Kinzler
  Mit Zitat antworten Zitat
Skeeder

Registriert seit: 3. Jan 2009
4 Beiträge
 
#5

Re: Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 10:13
Turbo Delphi Explorer 2006
NTFS
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Readonly-Attribut und Windows XP

  Alt 3. Jan 2009, 10:46
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Skeeder

Registriert seit: 3. Jan 2009
4 Beiträge
 
#7

Re: Readonly-Attribut und Windows XP

  Alt 4. Jan 2009, 08:35
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
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Readonly-Attribut und Windows XP

  Alt 4. Jan 2009, 08:45
CheckAccessToFile von Nico
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Readonly-Attribut und Windows XP

  Alt 4. Jan 2009, 11:32
Könntest du bitte für die neue Frage ein neues Thema eröffnen? Danke
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz