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
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.
Orada standart WPF Sekme Denetimi için...
jQuery - Yangın olay eğer CSS sınıfı d...
jQuery onay kutusu durumunu kontrol ol...
AngularJS: ng-click "yararlı"...
İnt kaldırdı/null dönüşüm ile ciddi ha...