AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Feststellen wann eine Datei erstellt wird
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen wann eine Datei erstellt wird

Ein Thema von Manzoni · begonnen am 2. Sep 2006 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Manzoni
Manzoni

Registriert seit: 15. Feb 2004
Ort: Berlin
120 Beiträge
 
Delphi 7 Enterprise
 
#1

Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 12:48
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
Bob
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#2

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 13:09
Hallo, Manzoni!
in meinem OpenSource Prog (siehe Link) kannst Du in der Liste die Datei einfügen, die Du dessen Erstellung Du beobachten willst.

Sehen, ob ein bestimmtes File erstellt wurde
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 13:13
Moin Manzoni,

für den Zweck stellt Dir Windows schon Funktionen bereit.
Schau Dir mal Hier im Forum suchenReadDirectoryChangesW / MSDN-Library durchsuchenReadDirectoryChangesW (nur NT/2000/XP) und Hier im Forum suchenFindFirstChangeNotification / MSDN-Library durchsuchenFindFirstChangeNotification (und zugehörige) an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Manzoni
Manzoni

Registriert seit: 15. Feb 2004
Ort: Berlin
120 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 19:38
Vielen Danke erstmal für eure Antowrten!
Bob
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#5

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 20:36
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 -.-'' )
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 21:18
Moin Himitsu,

Zitat von himitsu:
es läuft ja leider irgendwie nicht so ganz damit


Was meinst Du?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#7

Re: Feststellen wann eine Datei erstellt wird

  Alt 2. Sep 2006, 21:23
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 -.-''
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Feststellen wann eine Datei erstellt wird

  Alt 3. Sep 2006, 03:42
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.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#9

Re: Feststellen wann eine Datei erstellt wird

  Alt 3. Sep 2006, 06:04
evtl. ist TDirectoryWatch von http://angusj.com/delphi/ eine hilfe...

Gruß Frank
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Feststellen wann eine Datei erstellt wird

  Alt 3. Sep 2006, 13:10
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz