2016-07-27 17 views
0

Für jeden neuen Eintrag in CSV-Datei, Code muss es lesen & nach der Validierung hinzufügen in einer anderen Excel-Datei. Also habe ich 'Dateisystemwächter', der auslöst, wenn 'Attridute' der Datei/des Ordners 'geändert' werden. Ich habe exe von meinem Code & erstellte Ordnerstruktur kompiliert.filesystemwatcher funktioniert auf einem Netzlaufwerk, aber nicht auf einem anderen

Fall 1. Struktur-Ordner auf dem lokalen Laufwerk auf neuen Eintrag in csv, tritt Änderungsereignis & Codeeingabe in Excel

Fall 2. Ordnerstruktur auf Netzlaufwerk 1 auf neuen Eintrag in csv, Änderungsereignis hinzufügen tritt & Code-Eingabe in Excel

Fall 3.e Ordnerstruktur auf Netzlaufwerk 2 oder ein lokales Laufwerk eines anderen Benutzers auf neuen Eintrag in csv hinzufügen, wird Änderungsereignis auslösen nicht

Plädoyer beziehen sich auf unter Code auf Formular Last

watchfolder = New FileSystemWatcher() 

    watchfolder.Path = GunResPath 

    watchfolder.NotifyFilter = NotifyFilters.Attributes 

    watchfolder.IncludeSubdirectories = False 

    ' Only watch csv files. 
    watchfolder.Filter = IO.Path.GetFileName(myFile) 

    AddHandler watchfolder.Changed, AddressOf logchange 

    watchfolder.EnableRaisingEvents = True 

auf die Schaltfläche klicken Sie auf Formular aktivieren Anhebung Ereignis true gesetzt ist Bitte helfen, es zu lösen.

Antwort

0

Filesystemwatcher hat Probleme, die durch lange Dateinamen, mehrere Dateiänderungen und eine Menge anderer Sachen ausgelöst werden.

https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx

Sie können die Puffergröße zwicken, aber im Wesentlichen, es ist nichts, was ich kritisch auf für irgendetwas verlassen würde. Wenn Sie wirklich wissen müssen, ob sich eine Datei oder ein Verzeichnis geändert hat, müssen Sie sie wahrscheinlich regelmäßig scannen.