Lire en anglais

Partager via


FileSystemWatcher.Renamed Événement

Définition

Se produit quand un fichier ou un répertoire du Path spécifié est renommé.

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;

Type d'événement

Attributs

Exemples

L’exemple suivant utilise l’événement Renamed pour afficher le chemin du fichier dans la console chaque fois que le fichier surveillé est renommé.

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);
            }
        }
    }
}

Remarques

L’événement Renamed est un RenamedEventHandler délégué qui a la signature suivante :

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

L’objet RenamedEventArgs fournit des informations sur l’opération de renommage, telles que le type du renommage (la ChangeType propriété), l’ancien et le nouveau nom, ainsi que l’ancien et le nouveau chemin d’accès. Notez que la Name propriété peut être null pour les événements renommés si le n’obtient pas les FileSystemWatcher événements de nom correspondants à partir du système d’exploitation.

Le changement de nom du répertoire que vous regardez ne déclenche pas de notification. Les notifications sont déclenchées uniquement pour les entrées à l’intérieur du répertoire que vous regardez.

S’applique à

Produit Versions
.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

Voir aussi