Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi JEDE ! Änderung einer Datei mitbekommen ? (https://www.delphipraxis.net/19822-jede-aenderung-einer-datei-mitbekommen.html)

stoxx 9. Apr 2004 14:24


JEDE ! Änderung einer Datei mitbekommen ?
 
Es ist folgender Problemfall. Ich muss eine BESTIMMTE Datei überwachen.
Die Lösung über FindFirstChangeNotification hat für mich keinen Vorteil, da auch dort mit einer Schleife (ZusatzThread, Timer) gearbeitet werden müsste.

Also nehm ich den einfachen Weg und überwache mit folgendem Code das ÄnderungsDatum der Datei, welche mit allen möglichen Schreib und Leserechten für andere Programme geöffnet ist.
(Somit kann ein fremdes Programm da reinschreiben)

Code:
function TFileWatch.getModifiedTime : TDateTime;
var
    fCreationTime : FileTime;
    fLastAccessTime : FileTime;
    fLastWriteTime : FileTime;
begin
result := -1;
if FWatchFileHandle <> INVALID_HANDLE_VALUE then
begin
 GetFileTime(FWatchFileHandle, @fCreationTime, @fLastAccessTime, @fLastWriteTime);
 result:= FileTimeToDateTime(fLastWriteTime);
end; // von if invalid Handle
end; // von getmodifiedTime

Dann frage ich in einem Timer alle 100 ms ab, ob sich das Datei Datum geändert hat
Das funktioniert zwar, aber mehr schlecht als Recht. Es gibt nämlich das Problem, wenn die Datei zu schnell hintereinander geändert wird. Dann fehlt mir eine Änderung.
Wüsste jemand eine Lösung dafür ?

besten Dank !

Gruß stoxx

Duffy 9. Apr 2004 14:42

Re: JEDE ! Änderung einer Datei mitbekommen ?
 
Hallo stoxx,
schau mal bei den Jedi Komponeten nach "JvChangeNotify", das sollte Dir weiterhelfen.

bye
CLaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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