![]() |
Event-Message wenn Datei fertig kopiert
Hallo,
habe folgendes Problem: Ich erstelle eine Art "Verzeichnis Überwachung", in der festgestellt wird ob Dateien erstellt, geändert, gelöscht oder kopiert werden. Wollte das ganze erweitern, so dass eine neu in den Ordner kopierte Datei automatisch in einen anderen Ordner verschoben wird. Das Problem ist nur, wie kriege ich ohne Timer(Dateistatus abfragen), besser mittels Event-Message heraus, ob die Datei schon FERTIG kopiert ist! Die Datei-Größen können nämlich flexibel sein, von einigen KB bis hin zu einigen GB. Wäre für Eure Hilfe dankbar. |
Re: Event-Message wenn Datei fertig kopiert
Wie machst Du bisher deine "Verzeichnisüberwachung". Da gibt es schon passende Eventschnittstellen von Windows wenn NTFS verwendet wird.
Ansonsten: Probier einfach die Datei exclusiv zu öffnen. Falls es nicht geht ist noch irgendjemand aktiv drauf. |
Re: Event-Message wenn Datei fertig kopiert
Das ganze arbeitet mit der Api-Funktion "ReadDirectoryChangesW".
Da gibt es die Möglichkeit verschiedene Ereignisse zu ermitteln (kopieren, löschen, Attrib geändert, umbenennen...). Leider nicht explizit "Datei ist fertig" kopiert. Zu deinem Vorschlag des überprüfens ob die Datei noch benutzt wird... Meinst du, einfach nach kopieren einer Datei in den Ordner eine Schleife starten und darin abfragen ob Datei noch in Benutzung ist? Und wenn nicht, dann die Datei verschieben? Klingt eigentlich plausibel. Einfache Lösung. Darauf bin ich gar nicht gekommen ;) Werds mal ausprobieren. --> Wie verhält sich das ganze, wenn mehrere Dateien kopiert werden? Werden die Events dann in eine Art Warteschleife eingereiht, oder wird gewartet bis der Thread abgearbeitet wurde? Danke... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 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-2025 by Thomas Breitkreuz