Verzeichnis überwachen
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Verzeichnis überwachen
Ich habe im Kopf, dass es irgendwie möglich ist, ein Verzeichnis "überwachen" zu lassen und von Windows verständigt zu werden, wenn sich in dem Verzeichnis etwas geändert hat. Hab dazu aber nichts gefunden.
-
- Beiträge: 2122
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Verzeichnis überwachen
Das sind so genannte Filesystem watches, schnelles googlen hat mir auf Windows diese API gefunden: https://learn.microsoft.com/de-de/windo ... dfrom=MSDN
- af0815
- Lazarusforum e. V.
- Beiträge: 6785
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Verzeichnis überwachen
Wenn man länger nach filesystem Watchers sucht ,findet man auch Komponenten dazu, meistens Delphi, aber auch Lazarus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Verzeichnis überwachen
FindFirstChangeNotification und WaitForSingleObject mit entsprechenden Parametern.
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 368
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Verzeichnis überwachen
Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
This is an abstraction layer for
- ReadDirectoryChangesW on Windows
- FSEvent on Mac OS
- inotify on Linux
https://github.com/Wosi/DirectoryWatcher
This is an abstraction layer for
- ReadDirectoryChangesW on Windows
- FSEvent on Mac OS
- inotify on Linux
- af0815
- Lazarusforum e. V.
- Beiträge: 6785
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Verzeichnis überwachen
Ah, hat wer die komplett verschiedenen APIs mal abstrahiert. Habe mich vor Jahren damit gespielt, da waren aber die Mechanismen so unterschiedlich das ich es nicht weiter verfolgt habe. Gut zu wissen. Danke für die Info.Jorg3000 hat geschrieben: Sa 23. Nov 2024, 16:11 Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
This is an abstraction layer for
- ReadDirectoryChangesW on Windows
- FSEvent on Mac OS
- inotify on Linux
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Re: Verzeichnis überwachen
Danke!Jorg3000 hat geschrieben: Sa 23. Nov 2024, 16:11 Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
This is an abstraction layer for
- ReadDirectoryChangesW on Windows
- FSEvent on Mac OS
- inotify on Linux
Wahnsinn, mit so einer komfortablen fix - und fertigen Unit habe ich nicht gerechnet. 7 Jahre alt - ich habe vor ein paar Jahren einmal nach so etwas gesucht, sicher keine 7 Jahre her, aber das habe ich damals nicht gefunden

Heruntergeladen, Demoprogramm kompiliert und funktioniert auf Anhieb

-
- Beiträge: 42
- Registriert: Di 22. Feb 2022, 12:19
- OS, Lazarus, FPC: Window 11
- CPU-Target: 64Bit
- Wohnort: Cloppenburg
Re: Verzeichnis überwachen
Hallo,
hat jemand noch ein weiteres kleines Beispielprogramm, wie man den DirectoryWatcher einsetzt?
Vielen Dank.
Gruß aus Norddeutschland.
hat jemand noch ein weiteres kleines Beispielprogramm, wie man den DirectoryWatcher einsetzt?
Vielen Dank.
Gruß aus Norddeutschland.
- af0815
- Lazarusforum e. V.
- Beiträge: 6785
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Verzeichnis überwachen
Das Demo was beim DirectoryWatcher dabei ist, ist nicht genug ? Oder was fehlt dir dort ?Meridian hat geschrieben: Do 13. Feb 2025, 13:58 Hallo,
hat jemand noch ein weiteres kleines Beispielprogramm, wie man den DirectoryWatcher einsetzt?
Vielen Dank.
Gruß aus Norddeutschland.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6921
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Verzeichnis überwachen
Zu diesem Thema fällt mir auch noch was ein.
Der Datei Manger Nemo von Mint verhält sich das auch merkwürdig.
Ich habe meine Daten alle aus einer NAS, welche mit NFS angebunden ist. Jetzt das merkwürdigem wen ich mit Lazarus etwas kompiliere, verschwinden einige Dateien in der Liste. Oder wen ich h2pas ausrufe, dann ist die *.pp nicht ersichtlich. Erst beim aktualisieren der Ansicht mit F5 kommt alles richtig.
Aber das komisch, ich habe ein Hilfsprogramm mit einem Memo. Und wen dort Memo.SafeToFile kommt, die dort gespeicherte Datei ist sofort ersichtlich. Wieso auch immer.
Der Datei Manger Nemo von Mint verhält sich das auch merkwürdig.
Ich habe meine Daten alle aus einer NAS, welche mit NFS angebunden ist. Jetzt das merkwürdigem wen ich mit Lazarus etwas kompiliere, verschwinden einige Dateien in der Liste. Oder wen ich h2pas ausrufe, dann ist die *.pp nicht ersichtlich. Erst beim aktualisieren der Ansicht mit F5 kommt alles richtig.
Aber das komisch, ich habe ein Hilfsprogramm mit einem Memo. Und wen dort Memo.SafeToFile kommt, die dort gespeicherte Datei ist sofort ersichtlich. Wieso auch immer.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 42
- Registriert: Di 22. Feb 2022, 12:19
- OS, Lazarus, FPC: Window 11
- CPU-Target: 64Bit
- Wohnort: Cloppenburg
Re: Verzeichnis überwachen
Der DirectoryWatcher ist grundsätzlich klasse. Habe aber auch weiterprobiert, damit die SubFolder überwacht werden. Ich weiß aber nicht, wie man den Parameter richtig setzt.af0815 hat geschrieben: Do 13. Feb 2025, 15:17Das Demo was beim DirectoryWatcher dabei ist, ist nicht genug ? Oder was fehlt dir dort ?Meridian hat geschrieben: Do 13. Feb 2025, 13:58 Hallo,
hat jemand noch ein weiteres kleines Beispielprogramm, wie man den DirectoryWatcher einsetzt?
Vielen Dank.
Gruß aus Norddeutschland.
Bin nur Hobby-"Programmierer"

Kann mir jemand helfen?
Vielen Dank dafür, wenn mir jemand weiterhilft...
- af0815
- Lazarusforum e. V.
- Beiträge: 6785
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Verzeichnis überwachen
Hast du versucht das Beispiel mit dem Parameter recursive zu starten ? Weil das sollte der Parameter sein, der eine Überwachung von Subfoldern aktiviert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 42
- Registriert: Di 22. Feb 2022, 12:19
- OS, Lazarus, FPC: Window 11
- CPU-Target: 64Bit
- Wohnort: Cloppenburg
Re: Verzeichnis überwachen
Hallo,
das mit dem Parameter recursive hat bei mir nicht funktioniert.
Ich habe in der procedure TDirectoryWatcherDemo.DoRun etwas geändert...
Damit werden auch die Subfolder überwacht.
Dennoch benötige ich diese Überwachung in einem Programm mit Formularen und es wäre klasse, wenn die Ereignisse in ein Memo geschrieben werden. Das habe ich bisher nicht geschaftt.
Gruß aus Niedersachsen...
das mit dem Parameter recursive hat bei mir nicht funktioniert.

Ich habe in der procedure TDirectoryWatcherDemo.DoRun etwas geändert...
Code: Alles auswählen
procedure TDirectoryWatcherDemo.DoRun;
var
FolderToWatch: String;
WatchSubFolders: Boolean;
DirectoryWatcher: IDirectoryWatcher;
begin
FolderToWatch := GetOptionValue('folder');
if FolderToWatch = '' then
FolderToWatch := ExtractFileDir(ParamStr(0));
//WatchSubFolders := [b][i]HasOption('r', 'recursive')[/i][/b]; // Original-Code...
// geändert in ...
WatchSubFolders := [b][i]true[/i][/b];
....
Dennoch benötige ich diese Überwachung in einem Programm mit Formularen und es wäre klasse, wenn die Ereignisse in ein Memo geschrieben werden. Das habe ich bisher nicht geschaftt.

Gruß aus Niedersachsen...
Zuletzt geändert von m.fuchs am Di 18. Mär 2025, 21:32, insgesamt 1-mal geändert.
Grund: Syntaxhighlighting
Grund: Syntaxhighlighting
-
- Beiträge: 955
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Verzeichnis überwachen
Bitte nutze [ code ][ /code ] (ohne Leerzeichen), damit es besser aussieht.Meridian hat geschrieben: Fr 14. Mär 2025, 10:25 Ich habe in der procedure TDirectoryWatcherDemo.DoRun etwas geändert...
FPC Compiler Entwickler
-
- Beiträge: 42
- Registriert: Di 22. Feb 2022, 12:19
- OS, Lazarus, FPC: Window 11
- CPU-Target: 64Bit
- Wohnort: Cloppenburg
Re: Verzeichnis überwachen
Moin zusammen,
bin erneut an dem Thema "Verzeichnis überwachen" dran.
Mir gefällt "DirctoryWatcher" grundsätzlich richtig gut, weil Datei- und Verzeichnisänderungen wie hinzugefügt, gelöscht und geändert erkannt werden inkl. der Subfolder.
-------------
Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
-------------
Ich kann leider aus der Konsolenanwendung keine grafische Anwendung machen. Habe auch mit anderen Komponenten probiert, die immer nie ganz vollständig sind.
Vielleicht hat ja jemand Lust dazu, mir zu helfen.
Was mir auch sehr gut gefällt, ist die Komponente "ATFileNotification" bzw. die Demo, die allerding mit Delphi geschrieben wurde und ich auch das nicht umgebogen bekomme. Das habe ich bei https://torry.net/components/files-and- ... ification/ gefunden.
Ich sag schon mal danke für die Hilfe, die ihr mir zukommen lasst.
Gruß Helmut
bin erneut an dem Thema "Verzeichnis überwachen" dran.
Mir gefällt "DirctoryWatcher" grundsätzlich richtig gut, weil Datei- und Verzeichnisänderungen wie hinzugefügt, gelöscht und geändert erkannt werden inkl. der Subfolder.
-------------
Dazu gibt's "DirectoryWatcher" auf github
https://github.com/Wosi/DirectoryWatcher
-------------
Ich kann leider aus der Konsolenanwendung keine grafische Anwendung machen. Habe auch mit anderen Komponenten probiert, die immer nie ganz vollständig sind.
Vielleicht hat ja jemand Lust dazu, mir zu helfen.
Was mir auch sehr gut gefällt, ist die Komponente "ATFileNotification" bzw. die Demo, die allerding mit Delphi geschrieben wurde und ich auch das nicht umgebogen bekomme. Das habe ich bei https://torry.net/components/files-and- ... ification/ gefunden.
Ich sag schon mal danke für die Hilfe, die ihr mir zukommen lasst.
Gruß Helmut
- Dateianhänge
-
- ScreenShot.png (13.31 KiB) 3453 mal betrachtet