Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Постоянный мониторинг папки реализованный на c#

#c_sharp


Добрый день. Пытаюсь написать крошечную программу на c#, которая будет мониторить
активность заданной папки и выводить информацию о времени последнего изменения в Label.
Пытался реализовать этот процесс через While:


public partial class Form1 : Form
{
    bool start = true;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

        button1.Text = ("Начать проверку");
        button2.Text = ("Остановить проверку");
    }

    private void button1_Click(object sender, EventArgs e)
    {


        while (start == false)
        {
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users");
            label1.Text = ("Полный путь: " + dir.FullName);
            label2.Text = ("Последнее обновление: " + dir.LastWriteTime);
        }

    }
}


Но, данный пример кода не делает вообще ничего.
    


Ответы

Ответ 1



Ссылка: Вот ссылка на знакомство с наблюдением за событиями файловой системы! Там как раз написано про наблюдение за событиями файловой системы и примеры есть. FileSystemWatcher.Changed - событие происходит при изменении файла или каталога в заданном пути Path. FileSystemWatcher.Renamed - событие происходит при переименовании файла или каталога в заданном пути Path. Событие Changed возникает неожиданно при переименовании файла, но оно не возникает при изменении имени каталога. Для отслеживания переименований используйте событие Renamed. Пример: public class Watcher { public static void Main() { Run(); } [PermissionSet(SecurityAction.Demand, Name="FullTrust")] public static void Run() { string[] args = System.Environment.GetCommandLineArgs(); // If a directory is not specified, exit program. if(args.Length != 2) { // Display the proper way to call the program. Console.WriteLine("Usage: Watcher.exe (directory)"); return; } // Create a new FileSystemWatcher and set its properties. FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = args[1]; /* Watch for changes in LastAccess and LastWrite times, and the renaming of files or directories. */ watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // Only watch text files. watcher.Filter = "*.txt"; // Add event handlers. watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new RenamedEventHandler(OnRenamed); // Begin watching. watcher.EnableRaisingEvents = true; // Wait for the user to quit the program. Console.WriteLine("Press \'q\' to quit the sample."); while(Console.Read()!='q'); } // Define the event handlers. private static void OnChanged(object source, FileSystemEventArgs e) { // Specify what is done when a file is changed, created, or deleted. Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); } private static void OnRenamed(object source, RenamedEventArgs e) { // Specify what is done when a file is renamed. Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath); } }

Комментариев нет:

Отправить комментарий