Hallo zusammen,
ich habe schonmal
FindFirstChangeNotifikation mit C++ für das Überwachen von Directories und Files eingesetzt.
Funktionierte ganz OK.
(Also neue Files melden, Löschen melden, umbenennen, o.ä. melden ohne Polling).
http://www.delphipraxis.net/152046-f...anstossen.html
Jetzt bräuchte ich das wieder, und ich checke gerade was es da so Alles gibt.
Dafür gibt es auch eine Lösung mit
ReadDirectoryChangesW.
http://forum.codecall.net/topic/7631...r-for-changes/
Welches ist denn "moderner" oder was für Vor- Nachteile gibt es da zwischen den Beiden ?
Die scheinen erstmal ziemlich das Gleiche zu machen.
Mit FindFirstChangeNotifikation war ich ganz zufrieden seinerzeit, auch weil es mit einem
WaitForMultipleObjects effizient arbeiten kann.
Das ReadDirectoryChangesW habe ich jetzt nur kurz gecheckt, läuft auch, aber da fehlt offenbar ein Wait im Thread.
Das ReadDirectoryChangesW scheint selbst blockend zu sein, und in der Funktion ein Wait zu setzen.
Beim Beenden des Demos gibt es dann MemoryLeaks.
Wie kann man das ReadDirectoryChangesW abbrechen, um den Thread sauber zu Beenden, ein Timeout scheint es nicht zu geben.
ReadDirectoryChangesW oder FindFirstChangeNotifikation , was sollte man Nutzen ?
Update:
Ok, ich sehe gerade da kann man was über
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx machen kann,
und doch Sync oder Async arbeiten.
Das Demo oben hat anscheinend nur den synchronen Code drin, ohne Overlapping.
Es scheint hier noch eine weitere Möglichkeit zu geben mit
SHChangeNotifyRegister.
Die Fragen bleiben:
- Was sind Vor- Nachteile / Unterschiede
- Welche sollte man nehmen für das Überwachen ob Files erzeugt oder gelöscht werden ?
- Welche Version ist am zukunftssichersten ?
Vieleicht hat ja jemand damit schon mehr Erfahrungen damit gemacht ?
Rollo