Home » Tipps & Tricks » Dateien/Verzeichnisse » Dateieigenschaften » Ist eine Datei in Benutzung

Ist eine Datei in Benutzung

Die folgende Funktion prüft, ob eine Datei in Benutzung ist. Als Parameter muss der Pfad+Dateiname der Datei übergeben werden. Gibt die Funktion True zurück ist die Datei in Benutzung.

function IsFileInUse(Path: string): boolean;
var
  hFile: THandle;

begin
  Result := False;
  if not FileExists(Path) then Exit;

  hFile := CreateFile(pchar(Path), GENERIC_READ or GENERIC_WRITE or GENERIC_EXECUTE,
                      0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := hFile = INVALID_HANDLE_VALUE;
  if not Result then CloseHandle(hFile);

end; {function IsFileInUse() ...}

Aufgerufen werden kann die Funktion beispielsweise so:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsFileInUse(Application.Exename) then
    Showmessage('Die Datei ist in Benutzung');
end;