Einzelnen Beitrag anzeigen

Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

Schreibrechte auf Ordner unter Win7 ermitteln

  Alt 29. Jun 2012, 17:34
Hallo zusammen,
unter folgendem Thread http://www.delphipraxis.net/102745-h...utz-hat-2.html wurde das Thema besprochen - aber nicht geklärt.

Iststand:
Mein Programm hat eine Datei "settings.ini" im Programmverzeichnis (ja, im Programmverzeichnis).
Diese wird beim Start in ein TMemInifile geladen.
Bei Programmende (oder auch bei einem expliziten Flush während der Programmlaufteit) wird mittelse MemIniFile.update auf Platte geschrieben.

Mein Problem:
Mein Programm soll nun auch direkt von CD startbar sein OHNE dass Dateien auf dem PC angelegt/geschrieben werden.
Ich hätte nun gern abgefragt, ob der Ordner, in dem das Inifile liegt Schreibzugriff hat - oder nicht. Das Attribut "Schreibgeschützt" hilft hier nicht, weil bei schreibgeschützten (readonly eingehängten) SD-Karten das Schreibschutz-Flag NICHT unbedingt gesetzt ist.

Ich hatte bereits versucht, eine temporäre Datei im betroffenen Ordner (mit und ohne try except ausprobiert) mit FileCreate zu erzeugen.
Wenn ich die Datei erzeugen konnte, dann hätte ich sie wieder geschlossen und gelöscht --> also Schreibzugriff=JA
ansonsten
Schreibzugriff=NEIN

-->ABER:
Win7 (Ultimate) ist mal wieder schneller. Da bekomme ich TROTZ Try-Except-Block die Meldung
Zitat:
Der Datenträger ist schreibgeschützt und kann nicht beschrieben werden. Entfernen Sie den Schreibschutz vom Datenträger in Laufwerk J:.
Mir gehen langsam die Ideen aus. Die einzige sehr sehr unschöne wäre, beim Start des Programms z.B. über die Inidatei das Verhalten des Programms auf Readonly = True/False zu setzen. --> also KEIN MemIniFile.update ausführen...
Mir wäre allerdings schon lieber, wenn dies automatisch ginge...

Hat jemand eine Idee?

Viele Grüße,

Poolspieler
Andreas

Geändert von Poolspieler (29. Jun 2012 um 17:41 Uhr)
  Mit Zitat antworten Zitat