![]() |
Feststellen wann eine Datei erstellt wird
Hallo!
Ich bin grade dabei ein Programm zu schreiben, welches überwachen soll obe eine gewisse Datei erstellt wurde. WEnn die Datei erstellt wurde, soll ein Programm gestartet werden. Ich bin am Überlegen zwischen zwei Varianten: Die erste ist einfach einen Thread zu programmieren der in regelmäßigen Abständen mit fileexists() prüft ob die Datei vorhanden ist. Anschließend würde ich noch überprüfen ob die Datei noch geöffnet ist, z.B. mit einem weiteren Thread Meine zweite Idee war das Windows-Event abzufangen, dass die Datei erstellt. Da ich mich aber wenig mit Hooks auskenne, weiß ich nicht wie man das realisieren kann bzw. ob das ein sinnvolles herangehen an das Problem ist. Kann mir einer von euch weiterhlefen, ob die zweite Variante pragmatisch ist und wie das daszugehörige Windows-Event heißt? Dazu habe ich bisher noch nichts gefunden. Noch ein Hinweis: Ich möchte nicht den Ordner überwachen und die Änderungen feststellen. Da in dem gleichen Ordner mehrere tausend andere Dateien liegen, wäre das zu performanzlastig. Vielen Dnk im Voraus, mfg Manzoni |
Re: Feststellen wann eine Datei erstellt wird
Hallo, Manzoni!
in meinem OpenSource Prog (siehe Link) kannst Du in der Liste die Datei einfügen, die Du dessen Erstellung Du beobachten willst. ![]() Sourcen sind dabei, Du darfst es frei/kommerziell verwenden. Vielleicht löst es das Problem. Eine neue Version (Freeware) ist in Arbeit, die statt dem Polling ein Ereignis abfragt. Beste Grüße. Go2EITS |
Re: Feststellen wann eine Datei erstellt wird
Moin Manzoni,
für den Zweck stellt Dir Windows schon Funktionen bereit. Schau Dir mal ![]() ![]() ![]() ![]() |
Re: Feststellen wann eine Datei erstellt wird
Vielen Danke erstmal für eure Antowrten!
|
Re: Feststellen wann eine Datei erstellt wird
Na ob du für diese Antworten wirklich dankbar bist ... warte erstmal damit ab (es läuft ja leider irgendwie nicht so ganz damit)
Die beiden DP-internen SuchLinks werden dich schon zu einigen Themen führen (auch zu denen, wo die Probleme beschrieben werden -.-'' ) |
Re: Feststellen wann eine Datei erstellt wird
Moin Himitsu,
Zitat:
Was meinst Du? |
Re: Feststellen wann eine Datei erstellt wird
ReadDirectoryChangesW & PRAXiSFindFirstChangeNotification ... schonmal aufgefallen? es läuft nicht bei allen so, wie es sollte.
ich kämpfe derzeit och damit ... mal geht es, mal geht es nicht, wenn es läuft, dann behindert es z.B. D7 und daß kann z.B. Dateien nicht mehr Speicher/umbenennen -.-'' |
Re: Feststellen wann eine Datei erstellt wird
Was ist denn der genaue Unterschied zwischen FindFirstChangeNotification und ReadDirectoryChangesW?
Laut MSDN ueberwacht man mit beiden Functions entweder einen Path oder sogar die ganzen SubDirs. |
Re: Feststellen wann eine Datei erstellt wird
|
Re: Feststellen wann eine Datei erstellt wird
Moin Mackhack,
ReadDirectoryChangesW liefert Dir aber auch noch zurück welche Datei/Verzeichnis geändert, und welche Veränderung durchgeführt wurde. FindFirstChangeNotification zeigt nur an, dass sich was geändert hat. Wo die Änderung aufgetreten ist, musst Du dann selber herausfinden. Diese Funktion läuft allerdings auch auf Windows 9x/Me, wohingegen ReadDirectoryChangesW nur auf NT-basierten Systemen existiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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 by Thomas Breitkreuz