![]() |
Verzeichnis überwachen - ReadDirectoryChangesW
Hallo Community,
ich würde gerne ein Verzeichnis überwachen mittels ReadDirectoryChangesW. Habe hier auch schon einiges gefunden und zuletzt auch eine fertige Unit von Luckie & Christian. Es handelt sich um die Unit MpuReadDirectoryChangesCls. Habe ein kleines Projekt erstellt welches mit ein Latex Verzeichnis überwachen soll. Inhalt 117 Dateien, wird nun eine Datei geändert läuft das Programm auch soweit Problemlos durch. Erzeuge ich nun allerdings meine PDF Datei, so wird ein Großteil der Dateien geändert. Es wird mir auch anfangs angezeigt bis es sich dann mit einer Zugriffsverletzung verabschiedet. Natürlich jetzt wenn ich die Fehlermeldung brauche, dann läuft es einmal brav durch... Nach dem driten durchgang aber kommt auch schon die nette Fehlermeldung. Zitat:
Zitat:
Zitat:
Gestartet wird es folgendermaßen:
Delphi-Quellcode:
Stoppen so:
sMemo1.Lines.Clear;
if DirectoryExists(sEdit1.Text) then begin if csDirThread = nil then begin WriteLog('Überwachung startet...'); csDirThread := TcsDirThread.Create(sEdit1.Text); csDirThread.OnDirectoryChanges := csDirThreadDirectoryChanges; csDirThread.OnDirectoryChangesError := csDirThreadDirectoryChangesError; csDirThread.OnTerminate := csDirThreadTerminate; end else WriteLog('Thread existiert noch'); end else WriteLog('Verzeichnis existiert nicht');
Delphi-Quellcode:
Delphi 2010 Pro
if csDirThread <> nil then
begin csDirThread.Terminate; //FreeAndNil(csDirThread); end; Windows 7 64Bit |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal der Quelltext den ich derzeit einsetze. Die Klasse von Luckie & Christian ist enthalten. Ansonsten nur jvSelectDirectory, Rest ist Standard.
Sorry hier hat sich ein kleiner Fehler eingeschlichen in der Unit3.pas Zeile 73 muss das s von sedit entfernt werden |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
|
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Hi,
e.v. mal mit ![]() Hatte mit ReadDirectoryChanges auch mal etliche komische Verhaltensweisen. MfG |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
@Luckie: Das ist doch genau die Dateiversion die ich aktuell nutze und mit der es nicht funktioniert.
@doctor-x: Danke werd ich mir gleich mal ansehen |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Ach das ist mein Demo? Ok. Dann könnte es daran liegen, dass ich das damals noch mit einer älteren Delphi Version geschrieben habe. Ich hatte damit keine Probleme.
|
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Steht im übrigen im Eröffnungspost :)
Ich hab es selbst auf Delphi 7 kompiliert unter WinXP gestern Abend aber da knallt es schon direkt bei der ersten Änderung im Verzeichnis. Habe da sonst kein Kram dran gebaut es ist nur das starten des Threads. |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Danke doctor-x die Komponente erzeugt zumindest keine Fehler bisher.
Bei einer Dateiänderung wird jedoch das Event "Modified" 2 mal aufgerufen. Konnte ich bei Lukies Klasse nicht feststellen. Es geht darum das ich gerne ein Programm hätte was wie Dropbox funktioniert. Ich dachte das ich dies mit Hilfe dieser Funktion aufbauen kann. Wenn allerdings bei einem erzeugen einer Datei 5 mal das Event aufgerufen wird denke ich wirds doch schwer diese direkt hochzuladen. Weiß jemand wie die Dropbox das beispielsweise löst? |
AW: Verzeichnis überwachen - ReadDirectoryChangesW
Moin Daniel,
Zitat:
Ich vermute mal, dass Luckie dafür einen Workaround eingebaut hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz