Dateistatus abfragen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Dateistatus abfragen

Beitrag von Bauer321 »

Moin,
wie kann ich feststellen ob eine Datei gerade geöffnet ist oder nicht. Und zwar habe ich einen Patcher, jedoch funktioniert der nur richtig wenn das Programm welches gepatcht wird geschlossen ist. Da es sich um Java handelt kann ich auch nicht einfach Abfragen ob der Prozess gerade läuft oder nicht (Das würde ja zum falsch Alarm führen wenn irgendeine andere Java Anwendung läuft). Nun habe ich eben mal FileIsWritable probiert jedoch ist die Datei auch wenn das Programm geöffnet ist schreibbar jedoch führt ein Patchen in diesem Fall dazu, das die Datei unbrauchbar wird.
www.mcpatcher.net | www.hoeper.me

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Dateistatus abfragen

Beitrag von theo »

http://www.freepascal.org/docs-html/rtl ... eopen.html" onclick="window.open(this.href);return false;

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Dateistatus abfragen

Beitrag von Bauer321 »

Danke aber auf den ersten Blick irgendwie nicht das was ich suche aber ich probiere es nochmal aus
www.mcpatcher.net | www.hoeper.me

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Dateistatus abfragen

Beitrag von theo »

Bauer321 hat geschrieben:Danke aber auf den ersten Blick irgendwie nicht das was ich suche
Wieso denn? Genau das tut doch was du willst oder nicht?
Das zweite ShowMessage wird -1 anzeigen, weil die Datei exklusiv geöffnet ist:

Code: Alles auswählen

var fh1,fh2:THandle;
begin
  fh1:=FileOpen('/home/theo/copy.txt',fmOpenReadWrite or fmShareExclusive);
  ShowMessage(inttostr(fh1));
  fh2:=FileOpen('/home/theo/copy.txt',fmOpenReadWrite or fmShareExclusive);
  ShowMessage(inttostr(fh2));
  FileClose(fh1);
  FileClose(fh2);   
end;

Antworten