Отслеживание изменений в директории - C#

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

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

Всем здравствуйте. Нужно написать код, который бы отслеживал изменения в директории, то есть создание/удаление/изменение файлов/субдиректорий в ней. Но не используя FileSystemWatcher. Нужно проверять содержимое папки по событию Elapsed у System.Timers.Timer и сравнивать старый и новый списки файлов/субдиректорий. Вопрос: как это осуществить? В гугле информация только о FileSystemWatcher, который использовать нельзя. Спасибо!

Решение задачи: «Отслеживание изменений в директории»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Timers;
 
 
namespace CustorSerialization
{
    class Program
    {
        static Timer myTimer;
        static DirectoryInfo[] dirInfo = null;
        static FileInfo[] fileInfo = null;
       
        static void Main(string[] args)
        {
            myTimer = new Timer(1000.0);
            myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
            myTimer.Start();
            
            dirInfo = new DirectoryInfo(@"C:\Windows").GetDirectories();
            foreach (DirectoryInfo di in dirInfo)
            {
                fileInfo = di.GetFiles();
            }
            Console.ReadLine();
        }
        static void myTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            DirectoryInfo[] dInfo = new DirectoryInfo(@"C:\Windows").GetDirectories();
            foreach (DirectoryInfo di in dInfo)
            {
                FileInfo[] fInfo = di.GetFiles();
            }
            if (dirInfo.Length != dInfo.Length)
            {
                Console.WriteLine("Количество папок в целевой директории не совпадает!");
                dirInfo = new DirectoryInfo(@"C:\Windows").GetDirectories();
            }
        }
    }
    
}

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


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

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

15   голосов , оценка 3.667 из 5