Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verzeichnis überwachen & Dateiänderungsdatum prüfen (https://www.delphipraxis.net/195979-verzeichnis-ueberwachen-dateiaenderungsdatum-pruefen.html)

himitsu 12. Apr 2018 14:21

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Die ReadDirectoryChangesW aus Post #3 nutzt MSDN-Library durchsuchenReadDirectoryChangesW und die reagiert auf verschiedene Änderungen, wie z.B.
FILE_NOTIFY_CHANGE_FILE_NAME,
FILE_NOTIFY_CHANGE_DIR_NAME,
FILE_NOTIFY_CHANGE_ATTRIBUTES,
FILE_NOTIFY_CHANGE_SIZE,
FILE_NOTIFY_CHANGE_LAST_WRITE,
FILE_NOTIFY_CHANGE_LAST_ACCESS,
FILE_NOTIFY_CHANGE_CREATION,
FILE_NOTIFY_CHANGE_SECURITY);

günni0 12. Apr 2018 14:24

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Zitat:

@Günni, bei deinem Beispiel meckert er bei mir, das er die Unit "DirectoryWatch" nicht findet (irgendwie logisch, da ich sie ja nirgends habe) aber in deinem Beispiel soll sie ja in die uses(?).
In Beitrag 3 habe ich sie angefügt.

Vorteil: eine einzige Unit, kann eigentlich alles.
Die hat zwar keine Interfaces, aber das sehe ich nicht als Nachteil. Denn nicht jeder ist des Verstehens von Interfaces mächtig und so kann meine angefügte Unit aus Beitrag 3 (Unit ist nicht von mir geschrieben) jeder erweitern.

KodeZwerg 12. Apr 2018 14:25

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Was ich geposted habe war die DirectoryWatch.pas in aktuellerer Version da die Quelle unbekannt war. Nun ist sie bekannt. (Ich beziehe mich auf Beitrag #3)

günni0 12. Apr 2018 14:26

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Liste der Anhänge anzeigen (Anzahl: 1)
@Moombas

Einfach meine Unit aus Beitrag 3 runterladen und meine Demo angucken. Ist selbsterklärend.

Ansonsten hier als Anhang noch einmal alles komplett.

Moombas 12. Apr 2018 14:46

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
@günni: hab das verpeilt mit der unit, dachte das nur der Programmiercode reicht. Aber mit der Unit bekomme ich die Fehlermeldung "TRttiEnumerationType" ist unbekannt, fehlt da eine andere unit?

Edit, habs gefunden System.Rtti fehlte in den uses

günni0 12. Apr 2018 15:01

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Das mit TRttiEnumerationType war nur für die Showmessage. Kann man rauslassen, weil man ja eh Action mit Case Action ... prüfen sollte.

Moombas 13. Apr 2018 06:52

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Jopp, ging aber erstmal darum, das es funktioniert ;) Hat mir auf jeden Fall schon mal enorm geholfen. Nun bekommen ich durch deine Hilfe den Filename, bin aber korrekt dabei, das ich für das Änderungsdatum der Datei eine neue eigene Routine brauche richtig?

günni0 13. Apr 2018 09:12

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Richtig. Das Datum wird nicht mitgeliefert. Es wird lediglich bekannt gemacht, dass es eine Änderung gab und welche. Weitere Daten muss man sich anhand des Dateinamens ("FileName") dann durch ergänzende Funktionalität zusammenbauen.
Falls das hier ein Profi ließt und ich Mist erzählte habe, korrigiere ich mich gerne.

himitsu 13. Apr 2018 09:57

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Im Allgemeinen kann man davon ausgehn, dass sich bei Inhaltänderung "standardmäßig" auch das Änderungsdatum ändert ... quasi nahezu identisch mit dem Zeitpunkt des Erhaltes der Änderungsmeldung.

günni0 13. Apr 2018 10:13

AW: Verzeichnis überwachen & Dateiänderungsdatum prüfen
 
Bei der von mir genannten Unit kann man auch als Abfrageoptionen woLastWrite, woLastAccess, woCreation auswählen.
Dann wird nur noch auf geänderte Daten geprüft.
(geht mit Wosis Unit selbstverständlich auch)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr.
Seite 2 von 3     12 3      

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