AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
|
AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Zitat:
|
AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Hallo,
wärs dann nicht einfacher/besser die dreckige Version zu verwenden, indem man versucht eine Datei zu erzeugen, schlägt dies fehl dann weiss man (vermutet man) dass man keine Schreibrechte hat. |
AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Folgender Code prüft, ob eine bestehende Datei beschreibbar ist:
Delphi-Quellcode:
Um zu prüfen, ob man in einem Verzeichnis eine neue Datei erzeugen kann,
function FileIsWriteable(const filename:string):Boolean;
var hnd: THandle; begin hnd := CreateFile(PChar(filename), GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Result := hnd <> INVALID_HANDLE_VALUE; if Result then CloseHandle(hnd); end; also ob man Schreibrechte in einem Verzeichnis hat, muss man einfach versuchen eine Datei zu schreiben. Man sollte eine Dateiendung verwenden, die sonst nicht benützt wird (.tmp, .$$$). Wenn man Pech hat, kann man die temporäre Datei erzeugen, aber danach nicht mehr löschen. Das kommt aber relativ selten vor. |
AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Also eigentlich sollte man es so machen. CreateFile hat doch noch irgendwo so ein temporary Flag, so dass die Datei gelöscht wird, sobald alle Handles geschlossen sind (bin zu faul zum suchen :-D ). Ich würde dann auch alle Share Attribute rausmachen, so dass kein anderer Prozess zwischendrin die Datei öffnen kann. Soll ja nur getestet werden, ob das geht. Gab es nicht auch noch ein Flag für zufällige Namen? (faul :-D )
Wenn das so gemacht wird, dann gibt es auch kein Problem mit dem Löschen, außer die Verbindung reißt ab. Obwohl selbst dann die Datei vom Server automatisch gelöscht werden sollte. Zitat:
|
AW: Hat Benutzer Schreibrechte (lokal/LAN)?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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