title: FileSystemWatcher - only the change event once firing once?
body: <p>I'm using the below code to listen for change events of a file i download off a server and open. however the change event only gets fired the first time the file is saved, then on subsequent saves the file watcher does not fire the change events?</p>
  
  <p>Can anyone see whats going on?</p>
  
  <pre><code>private FileSystemWatcher StartWatchingFile()
  {
      fw = new FileSystemWatcher();
      fw.Path = this.directoryLocation;
      fw.Filter = this.Filename;
  
      fw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
  
      // Add event handler
      fw.Changed += new FileSystemEventHandler(fw_Changed);
  
      // Open file        
  System.Diagnostics.Process.Start(this.CreateAbsoluteFilePath(this.Filename));
  
      // Begin watching.
      fw.EnableRaisingEvents = true;
  
      return fw;
  }
  
  //************************  
  
      void fw_Changed(object sender, FileSystemEventArgs e)
      {
          MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType);
      }
  </code></pre>
  
  <p>EDIT:  The StartWatchingFile() now returns the filewatcher which is kept in a class that will not be garbage collected, just to make sure i'm holding the whole class as thought the fw_changed() function might not be able to be called.  So the whole class is now not getting garbage collectioned.  The class is held in a ArrayList which is a public member of a class</p>
  
  <p>Regards,</p>
  
  <p>Jon</p>