AGB  ·  Datenschutz  ·  Impressum  







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

Regelmässig auf vorhandene Dateien prüfen

Ein Thema von H.Bothur · begonnen am 24. Mär 2019 · letzter Beitrag vom 6. Apr 2019
Antwort Antwort
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
273 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 26. Mär 2019, 13:25
Oder ganz einfach: Man ruft die Suchroutine einfach einmal pro Minute per TTimer auf.
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.848 Beiträge
 
Delphi 12 Athens
 
#2

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 26. Mär 2019, 21:20
Oder ganz einfach: Man ruft die Suchroutine einfach einmal pro Minute per TTimer auf.
Es sauber umzusetzen macht aber mehr Sinn. Dann bekommt man Änderungen gleich mit und nicht erst beim nächsten Suchlauf und einfacher ist es zusätzlich noch.

Am einfachsten ist, wenn man TJvChangeNotify aus der JVCL benutzt. JCL und JVCL dürften die meisten ja ohnehin installiert haben. Die Komponente kann man einfach auf ein Formular oder Datenmodul legen, unter Notifications die zu überwachenden Verzeichnisse festlegen und das OnChangeNotify Event erstellen. Darin bekommt man dann das Verzeichnis mitgeteilt, in dem sich etwas geändert hat und die Information was sich dort geändert hat (Dateiname, Verzeichnisname, Attribute, Dateigröße, ...).

Mit TJvChangeNotify ist das eine Sache von 5 Minuten inkl. Test.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
273 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 27. Mär 2019, 10:00
Oder ganz einfach: Man ruft die Suchroutine einfach einmal pro Minute per TTimer auf.
Es sauber umzusetzen macht aber mehr Sinn. Dann bekommt man Änderungen gleich mit und nicht erst beim nächsten Suchlauf und einfacher ist es zusätzlich noch.

Am einfachsten ist, wenn man TJvChangeNotify aus der JVCL benutzt. JCL und JVCL dürften die meisten ja ohnehin installiert haben. Die Komponente kann man einfach auf ein Formular oder Datenmodul legen, unter Notifications die zu überwachenden Verzeichnisse festlegen und das OnChangeNotify Event erstellen. Darin bekommt man dann das Verzeichnis mitgeteilt, in dem sich etwas geändert hat und die Information was sich dort geändert hat (Dateiname, Verzeichnisname, Attribute, Dateigröße, ...).

Mit TJvChangeNotify ist das eine Sache von 5 Minuten inkl. Test.
Natürlich ist die Sache mit den ChangeNotifications eine schicke Sache und - je nach Anwendungsfall - auch genau die richtige Lösung, aber die Anfrage des Threaderstellers war:

"Ich möchte ... regelmässig alle x Minuten nachsehen ob in einem bestimmten Verzeichnis Dateien vorhanden sind."

Das kann er mit meinem Vorschlag mit 5-10 Zeilen Code lösen. Das hier gepostete Codebeispiel hat über 500 Zeilen Code für die gleiche Sache. Vielleicht ist das aus mancher Leute Sicht die sauberere Lösung, für mich ist es mit Kanonen auf Spatzen schießen.

(Just my two cents)

PS: Funktionieren die Notifications eigentlich auch, wenn die Dateien nicht lokal sind und also z.B. auf einem vernetzten Linux-System liegen?
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 27. Mär 2019, 10:09
Zitat:
PS: Funktionieren die Notifications eigentlich auch, wenn die Dateien nicht lokal sind und also z.B. auf einem vernetzten Linux-System liegen?
Mit dem von mir geposteten Beispiel ja. Die JVCL-Variante habe ich nicht getestet.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#5

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 27. Mär 2019, 10:39
Ein Verzeichnis im Netz auf Änderungen zu überwachen frisst nach meiner Erfahrung Systemleistung.
Die Anforderungen sprechen in diesem Anwendungsfall eher für die Timer-Variante.
Zudem ist das einfacher umzusetzen.
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
259 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 31. Mär 2019, 13:43
Nur als Feedback - ich habe es jetzt kurz gehalten und über einen Timer realisiert - klappt hervorragend.

Gruß
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 31. Mär 2019, 14:30
Bei einem Timer darfst du eine Sache nicht vergessen. Nur als Beispiel. Wenn dein Timer ein Intervall von 60 Sekunden hat und die Codeausführung in deinem Timer aber 59 Sekunden dauert, dann geht der Timer nach einer Sekunde wieder los.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Regelmässig auf vorhandene Dateien prüfen

  Alt 1. Apr 2019, 12:20
Für die Aufgabenstellung von Hans passt es wohl
klappt hervorragend.
Ich persönlich würde bei so nem asynchronem Zeug sowas nie schreiben
  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 22:51 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