Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2015, 18:01   #1
Елисей
 
Регистрация: 19.04.2011
Сообщений: 4
По умолчанию FileSystemWatcher

Имеется код

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace I_see_you
{
    class file
    {
       // public bool IncludeSubdirectories { get; set; }
    
        public static void process()
        {
            System.Timers.Timer tm = new System.Timers.Timer();
            tm.Elapsed += new System.Timers.ElapsedEventHandler(tm_Tick);
            tm.Interval = 1000;
            tm.Start();
        }
        static void tm_Tick(object sender, System.Timers.ElapsedEventArgs e)
        {
            // string file = "";
            
            if (Program.filewatch == true)
            {
                System.Threading.Thread.Sleep(1000);
                
                FileSystemWatcher watcher = new FileSystemWatcher(@"D:\", "*.*");
                watcher.IncludeSubdirectories = true;
                watcher.Changed += new FileSystemEventHandler(OnChanged);
                watcher.Created += new FileSystemEventHandler(OnChanged);
                watcher.Deleted += new FileSystemEventHandler(OnChanged);
                watcher.EnableRaisingEvents = true;
                Console.Read();

            }
        }



        static object changeLock = new object();
        static void OnChanged(object sender, FileSystemEventArgs q)
        {
            lock (changeLock)
            {          //using (StreamWriter sw = new StreamWriter("Files_change.txt"))
                using (StreamWriter sw = File.AppendText("Files_change.txt"))
                {
                    sw.WriteLine("Type: {0}, Path: {1}", q.ChangeType, q.FullPath);
                    //sw.Close();
                }
            }
        }
    }
}

Тут мы следим за теми файлами, которые были удалены и все записывается в лог файо Files_change.txt А вот и вопрос, почему если удалить один файл, то в лог записывается это раз 7-9, и как убрать данное повторение в лог файле? Заранее всем спасибо!


_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 15.05.2015 в 10:23.
Елисей вне форума Ответить с цитированием
Старый 14.05.2015, 18:12   #2
Елисей
 
Регистрация: 19.04.2011
Сообщений: 4
По умолчанию

Сам понял в чем прикол, таймер тут не нужен совсем!)
Елисей вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FileSystemWatcher JOFRIF C# (си шарп) 0 19.05.2012 20:14
Двойное срабатывание FileSystemWatcher ShamanK C# (си шарп) 1 06.11.2011 19:32
Модуль мониторинга файловой системы (FileSystemWatcher) maxefficiently Помощь студентам 2 15.02.2011 06:49