FileSystemWatcher.Renamed Olay

Tanım

Belirtilen Path içindeki bir dosya veya dizin yeniden adlandırıldığında gerçekleşir.

C#
public event System.IO.RenamedEventHandler? Renamed;
C#
public event System.IO.RenamedEventHandler Renamed;
C#
[System.IO.IODescription("FSW_Renamed")]
public event System.IO.RenamedEventHandler Renamed;

Olay Türü

Öznitelikler

Örnekler

Aşağıdaki örnek, izlenen dosya her yeniden adlandırıldığında konsolunun dosya yolunu görüntülemek için olayını kullanır Renamed .

C#
using System;
using System.IO;

namespace MyNamespace
{
    class MyClassCS
    {
        static void Main()
        {
            using var watcher = new FileSystemWatcher(@"C:\path\to\folder");

            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;

            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;
            watcher.Renamed += OnRenamed;
            watcher.Error += OnError;

            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;

            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }

        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType != WatcherChangeTypes.Changed)
            {
                return;
            }
            Console.WriteLine($"Changed: {e.FullPath}");
        }

        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            string value = $"Created: {e.FullPath}";
            Console.WriteLine(value);
        }

        private static void OnDeleted(object sender, FileSystemEventArgs e) =>
            Console.WriteLine($"Deleted: {e.FullPath}");

        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed:");
            Console.WriteLine($"    Old: {e.OldFullPath}");
            Console.WriteLine($"    New: {e.FullPath}");
        }

        private static void OnError(object sender, ErrorEventArgs e) =>
            PrintException(e.GetException());

        private static void PrintException(Exception? ex)
        {
            if (ex != null)
            {
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine("Stacktrace:");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();
                PrintException(ex.InnerException);
            }
        }
    }
}

Açıklamalar

Olay Renamed , aşağıdaki imzaya sahip bir RenamedEventHandler temsilcidir:

C#
public delegate void Renamed(object sender, RenamedEventArgs e);

RenamedEventArgs nesnesi, yeniden adlandırma işlemi hakkında yeniden adlandırma türü (ChangeTypeözellik), eski ve yeni ad ve eski ve yeni yol gibi bilgiler sağlar. özelliği, işletim sisteminden Name eşleşen eski ve yeni ad olaylarını almazsa FileSystemWatcher , yeniden adlandırılan olaylar için null olabilir.

İzlediğiniz dizini yeniden adlandırmak bildirim oluşturmaz. Bildirimler yalnızca izlediğiniz dizin içindeki girdiler için oluşturulur.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Ayrıca bkz.