FileSystemWatcher дублирует событие изменения - C#

Узнай цену своей работы

Формулировка задачи:

Собственно проблема озвучена в названии темы. Не знаю, как это побороть... При изменении файла в каталоге, за которым следит FileSystemWatcher, событие изменения происходит дважды.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
 
namespace DataBetwenPrograms_Client_
{
    class Program
    {
        static void Main(string[] args)
        {
            FileSystemWatcher watcher = new System.IO.FileSystemWatcher(Environment.CurrentDirectory, "*.txt");
            watcher.NotifyFilter = NotifyFilters.LastWrite
                        | NotifyFilters.FileName | NotifyFilters.DirectoryName;
            watcher.Changed += new System.IO.FileSystemEventHandler(OnChanged);
            watcher.EnableRaisingEvents = true;
            Console.ReadKey();
        }
 
        static public void OnChanged(object source, FileSystemEventArgs e)
        {
            Console.WriteLine("txt-file changed.");
        }
    }
}
И после гугления этой проблемы я узнал, что с таковой траблой сталкивался не только я...

Решение задачи: «FileSystemWatcher дублирует событие изменения»

textual
Листинг программы
 System.IO.FileSystemWatcher fsw = new FileSystemWatcher(@"pathName", "*.txt");
            fsw.Changed += (s, e) => { Console.WriteLine(e.Name); };
            fsw.NotifyFilter = NotifyFilters.Size| NotifyFilters.CreationTime;
            fsw.EnableRaisingEvents = true;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы