Ich habe ein Programm, das als Windows-Dienst ausgeführt wird; Es verarbeitet Dateien in einem bestimmten Ordner. Da es sich um einen Dienst handelt, überwacht es ständig einen Ordner auf neue Dateien, die hinzugefügt wurden. Ein Teil der Aufgabe des Programms besteht darin, Vergleiche von Dateien im Zielordner durchzuführen und nicht übereinstimmende Dateien zu markieren. Was ich tun möchte, ist in der Lage zu erkennen, ob ein Kopiervorgang ausgeführt wird und wann er abgeschlossen ist, so dass eine Datei nicht vorzeitig markiert wird, wenn die entsprechende Datei noch nicht in den Zielordner kopiert wurde.C# - Warte auf einen Kopiervorgang
Was ich dachte, war die Verwendung des FileSystemWatcher, um den Zielordner zu sehen und zu sehen, ob ein Kopiervorgang auftritt. Wenn dies der Fall ist, lege ich den Hauptthread meines Programms in den Ruhezustand, bis der Kopiervorgang abgeschlossen ist, und führe die Operation für den Ordner wie üblich durch. Ich wollte nur einen Einblick in diesen Ansatz bekommen und sehen, ob er gültig ist. Wenn jemand anderes andere einzigartige Ansätze für dieses Problem hat, wäre dies sehr zu begrüßen.
UPDATE:
Vielen Dank für Ihre Vorschläge
UPDATE 2:
ich für die Verwirrung entschuldigen, wenn ich Zielverzeichnis sage, meine ich den Quellordner alle Dateien enthält, möchte ich herstellen. Ein Teil der Funktion meines Programms besteht darin, die Verzeichnisstruktur des Quellverzeichnisses in ein Zielverzeichnis zu kopieren und alle gültigen Dateien in dieses Zielverzeichnis zu kopieren, wobei die Verzeichnisstruktur des ursprünglichen Quellverzeichnisses erhalten bleibt, dh ein Benutzer kann Ordner kopieren, die Dateien enthalten in das Quellverzeichnis. Ich möchte Fehler verhindern, indem ich sicherstelle, dass, wenn ein neuer Satz von Ordnern mit mehr Unterordnern und Dateien zum Verarbeiten in das Quellverzeichnis kopiert wird, mein Programm erst nach dem Kopiervorgang im Zielverzeichnis arbeitet.
+1. Das ist eine sehr gute Frage. Ich muss mir noch einen Ansatz ausdenken, der sich nicht wie ein Hack anfühlt. – David
Diese Frage ist ähnlich und hat einige gute Antworten: http://stackoverflow.com/questions/30074/monitoring-files-how-to-know-when-a-file-is-complete – mfdoran