AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi JEDE ! Änderung einer Datei mitbekommen ?
Thema durchsuchen
Ansicht
Themen-Optionen

JEDE ! Änderung einer Datei mitbekommen ?

Ein Thema von stoxx · begonnen am 9. Apr 2004 · letzter Beitrag vom 9. Apr 2004
Antwort Antwort
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

JEDE ! Änderung einer Datei mitbekommen ?

  Alt 9. Apr 2004, 15:24
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
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: JEDE ! Änderung einer Datei mitbekommen ?

  Alt 9. Apr 2004, 15:42
Hallo stoxx,
schau mal bei den Jedi Komponeten nach "JvChangeNotify", das sollte Dir weiterhelfen.

bye
CLaus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 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