Heyho liebe community,
ich stehe vor folgendem Problem:
Zurzeit schreibe ich gerade an meine Bac Arbeit, teil dieser ist es ein Programm zu schreiben, welches einen bestimmten Ordner überwacht.
Fall in diesem Ordner nun ein txt file erstellt wird (Das geschieht durch ein 2. Programm) soll über einen FileWatcher dieses txt file erkannt und ausgelesen werden.
Das funktioniert so auch schon ganz gut, allerdings mit folgendem Problem:
Es kommt oft vor, dass sehr viele (>40) files mehr oder weniger GLEICHZEITIG in besagtem Ordner abgelegt werden. (Geht um den Druck von Produktlabeln, dh es werden zB 40 Label gedruckt auf denen
jeweils 1/40 , 2/40 , 3/40, usw steht) ... daher auch die 40 txt files.
Nun erkennt mein Programm leider immer nur das erste file, da anscheinend das durchlaufen des Codes länger dauert als das speichern der restlichen 39 files.
Hat jemand eine Idee wie man dieses Problem umgehen könnte?
Hier mal mein bisheriger Code:
Spoiler anzeigen
Wie gesagt, mit nur einem file funktioniert das Programm wunderbar, ordnet passende Werte zu und Druckt das Label.
Wenn aber nun 2 oder mehr files gleichzeitig gespeichert werden spricht es nur auf das erste an.
Ich habe auch schon probiert die Zeilen:
watcher.EnableRaisingEvents = True bzw false zu löschen, bekomme dann allerdings beim speichern eines txt files 2 mal den FileWatcher aktiviert
Für eure Hilfe schon mal einen ganz Großen Dank
LG
ich stehe vor folgendem Problem:
Zurzeit schreibe ich gerade an meine Bac Arbeit, teil dieser ist es ein Programm zu schreiben, welches einen bestimmten Ordner überwacht.
Fall in diesem Ordner nun ein txt file erstellt wird (Das geschieht durch ein 2. Programm) soll über einen FileWatcher dieses txt file erkannt und ausgelesen werden.
Das funktioniert so auch schon ganz gut, allerdings mit folgendem Problem:
Es kommt oft vor, dass sehr viele (>40) files mehr oder weniger GLEICHZEITIG in besagtem Ordner abgelegt werden. (Geht um den Druck von Produktlabeln, dh es werden zB 40 Label gedruckt auf denen
jeweils 1/40 , 2/40 , 3/40, usw steht) ... daher auch die 40 txt files.
Nun erkennt mein Programm leider immer nur das erste file, da anscheinend das durchlaufen des Codes länger dauert als das speichern der restlichen 39 files.
Hat jemand eine Idee wie man dieses Problem umgehen könnte?
Hier mal mein bisheriger Code:
VB.NET-Quellcode
- 'Initialisieren des FileSystemWatcher
- Private Sub main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- trigger.Path = "Z:\Labelprint\Temp"
- trigger.NotifyFilter = NotifyFilters.LastWrite
- trigger.IncludeSubdirectories = False
- trigger.Filter = "*.txt"
- End Sub
- 'File wird geändert oder erstellt:
- Private Sub trigger_changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles trigger.Changed
- Dim temp As String = ""
- Dim sFile As String = ""
- Dim watcher As System.IO.FileSystemWatcher = sender
- If startstop = True Then 'Hilfsvariable
- watcher.EnableRaisingEvents = False 'Starten
- '-------------------------------------------------------------------------------------------- Events die ein Speichern des txt files auslöst
- Nice = New NiceApp 'Commando für das Druckprogramm
- temp = e.FullPath.ToString 'Hilfsvariable, vollständiger Pfad + Dateiname
- sFile = Mid(temp, 41, Len(temp)) 'Abspalten des dateinamen vom Pfadnamen (Für Unterprozeduren)
- ListBox1.Items.Add("Trigger gestartet am: " & Date.Now & " um " & TimeOfDay)
- Call check_Printjobs(Nice, sFile) 'Sub routine die die Einträge im txt file verarbeitet und an die Drucker schickt
- '--------------------------------------------------------------------------------------------
- watcher.EnableRaisingEvents = True 'Beenden
- Else
- Exit Sub
- End If
- End Sub
Wie gesagt, mit nur einem file funktioniert das Programm wunderbar, ordnet passende Werte zu und Druckt das Label.
Wenn aber nun 2 oder mehr files gleichzeitig gespeichert werden spricht es nur auf das erste an.
Ich habe auch schon probiert die Zeilen:
watcher.EnableRaisingEvents = True bzw false zu löschen, bekomme dann allerdings beim speichern eines txt files 2 mal den FileWatcher aktiviert
Für eure Hilfe schon mal einen ganz Großen Dank
LG