AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) FindFirstChangeNotifikation vs. ReadDirectoryChangesW vs. SHChangNoitifyRegister
Thema durchsuchen
Ansicht
Themen-Optionen

FindFirstChangeNotifikation vs. ReadDirectoryChangesW vs. SHChangNoitifyRegister

Ein Thema von Rollo62 · begonnen am 7. Nov 2017 · letzter Beitrag vom 8. Nov 2017
 
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#1

FindFirstChangeNotifikation vs. ReadDirectoryChangesW vs. SHChangNoitifyRegister

  Alt 7. Nov 2017, 20:25
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

Geändert von Rollo62 ( 8. Nov 2017 um 06:05 Uhr)
  Mit Zitat antworten Zitat
 


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 23:37 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