Wann sollte Programm mehrfachen Dateizugriff bemerken
Hallo,
bei diversen Texteditoren ist es ja so, dass sie es bei einer Datei, die ich gerade darin geöffnet habe, bemerken, dass diese anderweitig aktualisiert worden ist und man bekommt eine Meldung, das die Datei evtl. nicht mehr aktuell ist und ob die aktuelle Version geladen werden soll. Manchmal hab ich sogar das "Gefühl", z.B. bei HTML-Dateien, das diese Meldung auch kommt obwohl die Datei nicht geändert wurde, sondern z.B. auch nur verwendet/aufgerufen wurde, z.B. vom Browser. Wie denkt ihr merken diese Programme das und vor allem wann? Läuft da ein Timer, der alle X Sekunden checkt, ob die Datei mit der auf der Festplatte übereinstimmt? Oder wird erst, wenn der Editor den Fokus bekommt geprüft, ob die aktuell sichtbare Datei sich von der Version auf der Festplatte unterscheidet. Und wie merkt man, das eine Datei nur benutzt wurde, falls es das ist was da passiert? |
AW: Wann sollte Programm mehrfachen Dateizugriff bemerken
Oder man lässt sich vom Betreibssystem/Dateisystem über Änderungen informieren.
|
AW: Wann sollte Programm mehrfachen Dateizugriff bemerken
|
AW: Wann sollte Programm mehrfachen Dateizugriff bemerken
Ich hab sowas mal in einem meiner Programme benutzt und IIRC hab ich dabei einfach auf den Zeitstempel der Datei zurückgegriffen. Der wird gespeichert beim Starten des Programms und im OnActivate wird er erneut ermittelt und mit dem gespeicherten verglichen. Bei Unterschied wird der Nutzer gefragt und unabhängig von dessen Antwort wird der Zeitstempel übernommen (für evtl. weitere Änderungen).
[ADD] So in dem Schema:
Delphi-Quellcode:
[/ADD]
procedure TMainForm.FormCreate(Sender: TObject);
begin INI_Date:= FileDateToDateTime(FileAge(IniFileName)); end; procedure TMainForm.OnActivateMainForm(Sender: TObject); var temp_date: TDateTime; begin temp_date:= FileDateToDateTime(FileAge(IniFileName)); if INI_Date <> temp_date then if MessageBox(...) then ... // Datei neu einlesen INI_Date:= temp_date; end; MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz