Announcement

Collapse
No announcement yet.

Mehrere FileSystemWatch dynamisch erzeugen...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrere FileSystemWatch dynamisch erzeugen...

    Hallo,

    ich werde zur Laufzeit meines Programms eine variable Anzahl an FileSystemWatcher Componenten erzeugen müssen, die ich alle von einer zentralen Routine handlen lassen will. Mein Problem ist nun, wie identifiziere ich den FSW, der das Event ausgelöst hat. Normalerweise würde ich auf etwas in der Art sender.name zurückgreifen, aber FSW scheinen keinen (zugänglichen) .name zu haben. Bin gerade etwas ratlos *?*

    In Private Sub FSWEvent müßte ich nun identifizieren können welche dynamisch erzeugte FSW Instanz der 'Auslöser' war.

    Hier mal ein Codeschnipsel mit dem aktuellen 'Testzustand' in dem erst mal nur eine Instanz dyn. erzeugt wird.

    [highlight=vbnet]
    .
    .
    .
    AddHandler FSW.Created, AddressOf FSWEvent
    AddHandler FSW.Changed, AddressOf FSWEvent
    AddHandler FSW.Deleted, AddressOf FSWEvent
    AddHandler FSW.Renamed, AddressOf FSWEvent
    .
    .
    .

    Private Sub FSWEvent(ByVal sender As Object, ByVal e As FileSystemEventArgs)
    Try
    FSW.EnableRaisingEvents = False
    System.Diagnostics.EventLog.WriteEntry("FileSystem WatcherService", e.Name.ToString & " -> " & e.ChangeType.ToString, EventLogEntryType.Information)
    e.ChangeType.ToString & """")
    FSW.EnableRaisingEvents = True
    Catch ex As Exception
    System.Diagnostics.EventLog.WriteEntry("FileSystem WatcherService", ex.ToString, EventLogEntryType.Error)
    End Try
    End Sub
    [/highlight]

  • #2
    sender sollte ein Verweis auf die FileSystemWatcher Instanz sein.
    Aber warum sollte man die unterscheiden? In den EventArgs steht der Änderungstyp und das betroffene Element. Was kann man mehr wissen wollen?

    Comment


    • #3
      weil unterschiedlich reagiert werden soll

      zb datei a - changed - email sendem
      datei b - changed - eventlog schreiben usw

      Comment


      • #4
        Irgendjemand eine Idee?

        Comment


        • #5
          ...Moment, es scheint, als könnte ich das so machen:

          if sender.equals(INSTANZ) = ... then

          Comment


          • #6
            Wen ich VB richtig in Erinnerung habe reicht ein

            Code:
            if sender is INSTANZ then ...

            Comment

            Working...
            X