Thema: Delphi Pfad beschreibbar

Einzelnen Beitrag anzeigen

zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#5

AW: Pfad beschreibbar

  Alt 23. Feb 2019, 12:03
Ich habe folgende Funktion aus dem Netz kopiert, um zu prüfen, ob ich in einen Pfad schreiben kann oder nicht:

Delphi-Quellcode:
//hier schauen wir nach, ob wir Dateien ins Programmverzeichnis schreiben können
Function IsFileWritetable(const FileName: String): Boolean;
var
  FileHandle : Cardinal; //18.02.19 -> war vorher integer
  OldErrorMode: Cardinal;

begin

  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);

  try

    FileHandle := FileOpen(FileName, fmOpenWrite);
    result := (FileHandle >= 0);
Mit dem 10.3.1 schlug Delphi vor, das Filehandle von Integer auf Cardinal zu ändern.
Seitdem bekomme ich die Meldung im Programm "Zugriff verweigert".
Tja, man sollte auf die Hints des Compilers achten . Hat er Dir nicht gesagt, dass der Ausdruck (FileHandle >= 0) immer True ist?

Das kommt vom Wechsel auf Cardinal. Wenn das File nicht geöffnet werden kann gibt FileOpen INVALID_HANDLE_VALUE zurück, was High(Cardinal) ist (interpretiert als Integer also -1). Daher hat das geklappt solange FileHandle als Integer deklariert war. Jetzt mußt Du das Statement in

  result := FileHandle <> INVALID_HANDLE_VALUE; ändern.
Danke für eure Tipps.
Habe jetzt diese Änderung eingebaut und funktioniert.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat