Einzelnen Beitrag anzeigen

MCXSC
(Gast)

n/a Beiträge
 
#6

Re: Datei in Benutzung -> Sperren

  Alt 27. Jun 2009, 01:11
Zitat von Luckie:
Luckie hat Urlaub und das wird ausgenutzt, da wird die Nacht zum Tag.
Kenn ich irgendwo her...

Ich habe nun zwei Möglichkeiten gefunden: Einmal mit einem gewissen OpenFile und einmal mit LockFileEx/UnlockFileEx. Sollte man eines davon bevorzugen?

//Edit: Okay, habe mir nun mal etwas "zusammengebastelt":

Delphi-Quellcode:
//zum sperren
var
  lf_FileSize: Integer;
  lf_FileHandle: THandle;
begin
  lf_FileHandle := CreateFile(PChar(Datei), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  lf_FileSize:= GetFileSize(lf_FileHandle, nil);
  LockFile(lf_FileHandle, 0, 0, lf_FileSize, 0);
  CloseHandle(lf_FileHandle);
end

//zum entsperren
var
  lf_FileSize: Integer;
  lf_FileHandle: THandle;
begin
  lf_FileHandle := CreateFile(PChar(Datei), GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  lf_FileSize:= GetFileSize(lf_FileHandle, nil);
  UnlockFile(lf_FileHandle, 0, 0, lf_FileSize, 0);
  CloseHandle(lf_FileHandle);
end;
Und dabei bekomme ich (zumindest bis zum sperren kommt er ) die Fehlermeldung "Systemfehler. Code: 6. Das Handle ist ungültig."
  Mit Zitat antworten Zitat