SORU
19 Kasım 2009, PERŞEMBE


FileSystemWatcher Değişti olay iki kez kaldırdı.

Bir metin dosyası arıyorum bir uygulama var ve eğer dosyada herhangi bir değişiklik yapılırsa orada olay işlemek için OnChanged eventhandler kullanıyorum. NotifyFilters.LastWriteTime kullanıyorum ama hala olayı iki kez kovuluyor. İşte kod.

public void Initialize()
{
   FileSystemWatcher _fileWatcher = new FileSystemWatcher();
  _fileWatcher.Path = "C:\\Folder";
  _fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
  _fileWatcher.Filter = "Version.txt";
  _fileWatcher.Changed  = new FileSystemEventHandler(OnChanged);
  _fileWatcher.EnableRaisingEvents = true;
}

private void OnChanged(object source, FileSystemEventArgs e)
{
   .......
}

Benim durumumda OnChanged metin version.txt dosya ve kaydedin değiştirdiğimde iki kez aradı.

CEVAP
19 Kasım 2009, PERŞEMBE


Bu bilinen bir hata olduğunu korkuyorum FileSystemWatcher sınıfı/özelliği. Bu sınıfın belgeler:

Bileşeni tarafından işlenen tek bir yaratılış olayı birden fazla Oluşturulan olaylar oluşturduğu bazı durumlarda görebilirsiniz. Örneğin, eğer kullandığınız bir FileSystemWatcher bileşen izleyicisi oluşturma Yeni Dosya bir dizin, ve sonra test kullanarak Not Defteri oluşturmak için bir dosya görebilirsiniz iki Oluşturulan olaylar oluşturulmuş olsa bile, sadece tek bir dosya oluşturulmuş. Bu Not Defteri yazma işlemi sırasında birden fazla dosya sistemi işlemleri gerçekleştirir. Not Defteri dosyasının içeriğini oluşturmak toplu diske yazar ve dosya öznitelikleri. Diğer uygulamalar aynı şekilde yapabilir. FileSystemWatcher işletim sistemi faaliyetlerini izler, çünkü, bu uygulamalar, yangın tüm olayları aldı olacak.

Şimdi bu metin bit Created olay ile ilgilidir, ama aynı şey diğer dosya olaylar için de geçerlidir. Bazı uygulamalarda NotifyFilter özelliğini kullanarak bu sorunun üstesinden gelmek mümkün olabilir, ama benim deneyim bazen bazı el yinelenen filtreleme yapmanız gereken (kesmek) de bunu söylüyor.

Bir süre önce 9* *birkaç ile bir sayfa bookedmarked. Bunu kontrol etmek isteyebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • David Wills

    David Wills

    31 Aralık 2007