AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner überwachen

Ein Thema von PierreB · begonnen am 2. Feb 2006 · letzter Beitrag vom 4. Feb 2006
Antwort Antwort
PierreB
(Gast)

n/a Beiträge
 
#1

Ordner überwachen

  Alt 2. Feb 2006, 10:02
Moin,

ein Bekannter von mir hat da ein kleines Problem, wobei ich ihm auch nicht helfen konnte:

Es soll ein spezieller Ordner überwacht werden, ob neue Dateien dem Ordner hinzugefügt werden. Wenn man z.B. eine Datei herunterläd und diese in dem speziellen Ordner gespeichert wird, soll das Programm entsprechend darauf reagieren. Nur wie kann man abfangen ob eine neue Datei dem Ordner hinzugefügt wird ? Wir kamen erst auf die Lösung mit einem Timer ständig die Dateianzahl in diesem Ordner zu prüfen, doch das ich bestimmt keine sehr elegante Lösung oder ?

Hat jemand ne Idee wie man das machen könnte ?

Danke,
  Mit Zitat antworten Zitat
em-sigma

Registriert seit: 8. Jul 2004
40 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Ordner überwachen

  Alt 2. Feb 2006, 10:29
Hi PierreB,

es gibt ein kleines Progrämmchen (watch_it.exe), das genau das macht, was Du möchtest.
Es überwacht einen angegebenen Ordner, ob eine Datei mit einem bestimmten Namen existiert. Ist diese Datei vorhanden, dann wird eine weitere Datei aufgerufen.

Syntax:
watch_it.exe Zu_Überwachender_Ordnername Auftauchende_Datei Auszuführendes_Programm

Beispiel:
watch_it MeinOrdner download.ctl DoIt.exe

Die Datei download.ctl ist eine (sehr kleine) Datei, die erst erzeugt werden sollte, wenn die große Datei, mit der etwas gemacht werden soll, vollständig vorhanden ist. Sonst kann es zu sehr unschönen Effekten kommen.

DoIt.exe kann dann ein Programm sein, das die eigentliche Datei behandelt. Auf jeden Fall sollte zuerst die Datei download.ctl gelöscht werden.

Ich hoffe es hilft,

Grüße, em-sigma
Angehängte Dateien
Dateityp: exe watch_it_331.exe (36,0 KB, 40x aufgerufen)
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Ordner überwachen

  Alt 2. Feb 2006, 10:34
Moin em-sigma,

irgendwie versteh ich nicht was dieses Programm macht.

Zitat:
Es überwacht einen angegebenen Ordner, ob eine Datei mit einem bestimmten Namen existiert.
Das möcht ich ja gar nicht, ich möchte das ein Ereignis aufgerufen wird wenn eine neue Datei mit beliebigen Namen in diesem Ordner existiert. Oder hab ich da jetzt was falsch verstanden ?

Du hast nicht zufällig den Sourcecode von diesem Programm (wenn es das macht was ich möchte), denn wir wollen das selbst in unser Programm mit einbauen.

Trotzdem schonmal danke.
  Mit Zitat antworten Zitat
Benutzerbild von zer00
zer00

Registriert seit: 7. Okt 2003
95 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Ordner überwachen

  Alt 2. Feb 2006, 12:44
Was muss geschehen, wenn eine Datei gespeichert wird?
Muss eine MessageBox auf Popen?

In Delphi gibts eine Komponente, leider bin ich mir nicht mehr sicher wie diese heisst.
Ich glaube etwas wie ShellNotification oder so.
Wenn das aber auch nicht geht versuchs mit GPO's
Windows kann das auch von haus aus.
Leider musst Du dann noch im EventLog nach einträgen suchen.
Miniaturansicht angehängter Grafiken
gpo_101.png  
sei kühn, sei immer kühn, sei nicht zu kühn
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Ordner überwachen

  Alt 2. Feb 2006, 17:39
Moin Pierre,

für Dich kommen da eigentlich (in der Hautpsache) zwei Funktionen in Frage:
Hier im Forum suchenReadDirectoryChangesW / MSDN-Library durchsuchenReadDirectoryChangesW und
Hier im Forum suchenFindFirstChangeNotification (und zugehörige Funktionen) MSDN-Library durchsuchenFindFirstChangeNotification

Schau sie Dir doch einmal an, um zu entscheiden, welche besser passt.
ReadDirectoryChangesW funktioniert z.B. nur auf NT-basierten Systemen, ist dafür aber auch "mitteilsamer" als die andere Variante.
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
PierreB
(Gast)

n/a Beiträge
 
#6

Re: Ordner überwachen

  Alt 3. Feb 2006, 09:41
Moin,

erstmal danke an alle, ich werd mir das mal in Ruhe angucken.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Ordner überwachen

  Alt 4. Feb 2006, 16:28
dafür gibt es verschiedene Komponenten, die das können.
bei den Jedi's ist was dabei.
von Rx gibt es die auch.
ich benutze die Komponenten von JUAN CARLOS MOLINOS MESA, die ist recht elegant.
ich hänge sie mal als Attachement mit dran.

hier meine Kurzanleitung:
- Komponente installieren
- DirMonitor auf das Formular setzen
- im Objektinspektor die Eigenschaften und Ereignisse setzen
- im Quellcode geeignet darauf reagieren
Delphi-Quellcode:
// wird aufgerufen, wenn sich das Verzeichnis ändert
procedure TmyForm.DirMonitorChange (sender: TObject; Action: TAction; FileName: string);
begin
  if pos ('myFile.ext', FileName) <> 0 then // ist es das richtige File?
  begin
    myProcedure(...);
  end;
end;
Angehängte Dateien
Dateityp: zip jcmmdirmonitor_605.zip (259,8 KB, 243x aufgerufen)
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:31 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