Windows-Dienst mit FileSystemWatcher in C #

8

Ich muss ein Programm erstellen, das Änderungen in der Dateigröße überwacht. Ich habe bereits einen einfachen Windows-Dienst und Dateisystemwächter gemacht, so dass ich jetzt mit dem Konzept vertraut bin. Ich habe auch einen Code erstellt, der nach der Dateigröße sucht (in einer Formularschaltfläche), aber noch nicht in meinem Dateisystemwächter implementiert wurde. Wie erstelle ich einen Windows-Dienst mit einem Dateiwächter, der die Dateigröße überwacht? Muss ich einen Dateisystemwächter in den Windows-Dienst einfügen und den Watcher über die OnStart-Methode aufrufen?

    
Harambe Attack Helicopter 17.08.2012, 03:21
quelle

3 Antworten

14

Wenn Sie einen Windows-Dienst erstellen, sollten Sie dies programmgesteuert tun. Normalerweise behalte ich Formulare außerhalb meiner Dienste und mache eine separate Schnittstelle für die Kommunikation. Jetzt muss der FileSystemWatcher kein Ereignis mehr nur auf seine Größe überwachen. Daher sollten Sie eine Methode erstellen, die mit FileSystemWatcher.Changed verknüpft ist, um nach Änderungen an vorhandenen Dateien zu suchen. Deklarieren und initialisieren Sie das Steuerelement in Ihrer OnStart-Methode und binden Sie die Ereignisse ebenfalls zusammen. Führen Sie in Ihrer OnStop-Methode Bereinigungscode aus. Es sollte ungefähr so ​​aussehen:

%Vor%

Beachten Sie außerdem, dass der FileSystemWatcher mehrere Ereignisse für eine einzelne Datei auslöst. Wenn Sie debuggen, sollten Sie nach Mustern suchen, um sie zu umgehen.

    
Luke Wyatt 17.08.2012, 03:39
quelle
3

Sie können Ihr Dateisystemwächter-Objekt einfach in der OnStart-Methode aktivieren, indem Sie

setzen %Vor%

Behandle dann das Ereignis. Das sollte es tun.

    
Kevin Anderson 17.08.2012 03:40
quelle
1

Sie können einen Delegaten erstellen, um mit dem umzugehen, was sich geändert hat wie

%Vor%

Und so weiter

Ich würde Ihnen empfehlen, diesen Artikel Ссылка

Verfügen Sie auch über dieses Delegat on_start in Windows-Dienst

    
Tharun 17.08.2012 03:42
quelle