Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#14

AW: Hat Benutzer Schreibrechte (lokal/LAN)?

  Alt 18. Okt 2010, 19:19
Folgender Code prüft, ob eine bestehende Datei beschreibbar ist:
Delphi-Quellcode:
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;
Um zu prüfen, ob man in einem Verzeichnis eine neue Datei erzeugen kann,
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.
Andreas
  Mit Zitat antworten Zitat