AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Event-Message wenn Datei fertig kopiert
Thema durchsuchen
Ansicht
Themen-Optionen

Event-Message wenn Datei fertig kopiert

Ein Thema von cr174 · begonnen am 12. Dez 2005 · letzter Beitrag vom 13. Dez 2005
Antwort Antwort
cr174

Registriert seit: 12. Dez 2005
2 Beiträge
 
#1

Event-Message wenn Datei fertig kopiert

  Alt 12. Dez 2005, 18:05
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.183 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Event-Message wenn Datei fertig kopiert

  Alt 12. Dez 2005, 20:54
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
cr174

Registriert seit: 12. Dez 2005
2 Beiträge
 
#3

Re: Event-Message wenn Datei fertig kopiert

  Alt 13. Dez 2005, 09:27
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...
  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 01: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