Bagikan melalui


FileSystemWatcher.Created Kejadian

Definisi

Terjadi ketika file atau direktori dalam yang ditentukan Path dibuat.

public:
 event System::IO::FileSystemEventHandler ^ Created;
public event System.IO.FileSystemEventHandler? Created;
public event System.IO.FileSystemEventHandler Created;
[System.IO.IODescription("FSW_Created")]
public event System.IO.FileSystemEventHandler Created;
member this.Created : System.IO.FileSystemEventHandler 
[<System.IO.IODescription("FSW_Created")>]
member this.Created : System.IO.FileSystemEventHandler 
Public Custom Event Created As FileSystemEventHandler 

Jenis Acara

Atribut

Contoh

Contoh berikut menggunakan peristiwa untuk menampilkan jalur file ke konsol Created setiap kali file yang ditonton dibuat.

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);
            }
        }
    }
}
Imports System.IO

Namespace MyNamespace

    Class MyClassVB

        Shared Sub Main()
            Using watcher = New FileSystemWatcher("C:\path\to\folder")
                watcher.NotifyFilter = NotifyFilters.Attributes Or
                                       NotifyFilters.CreationTime Or
                                       NotifyFilters.DirectoryName Or
                                       NotifyFilters.FileName Or
                                       NotifyFilters.LastAccess Or
                                       NotifyFilters.LastWrite Or
                                       NotifyFilters.Security Or
                                       NotifyFilters.Size

                AddHandler watcher.Changed, AddressOf OnChanged
                AddHandler watcher.Created, AddressOf OnCreated
                AddHandler watcher.Deleted, AddressOf OnDeleted
                AddHandler watcher.Renamed, AddressOf OnRenamed
                AddHandler watcher.Error, AddressOf OnError

                watcher.Filter = "*.txt"
                watcher.IncludeSubdirectories = True
                watcher.EnableRaisingEvents = True

                Console.WriteLine("Press enter to exit.")
                Console.ReadLine()
            End Using
        End Sub

        Private Shared Sub OnChanged(sender As Object, e As FileSystemEventArgs)
            If e.ChangeType <> WatcherChangeTypes.Changed Then
                Return
            End If
            Console.WriteLine($"Changed: {e.FullPath}")
        End Sub

        Private Shared Sub OnCreated(sender As Object, e As FileSystemEventArgs)
            Dim value As String = $"Created: {e.FullPath}"
            Console.WriteLine(value)
        End Sub

        Private Shared Sub OnDeleted(sender As Object, e As FileSystemEventArgs)
            Console.WriteLine($"Deleted: {e.FullPath}")
        End Sub

        Private Shared Sub OnRenamed(sender As Object, e As RenamedEventArgs)
            Console.WriteLine($"Renamed:")
            Console.WriteLine($"    Old: {e.OldFullPath}")
            Console.WriteLine($"    New: {e.FullPath}")
        End Sub

        Private Shared Sub OnError(sender As Object, e As ErrorEventArgs)
            PrintException(e.GetException())
        End Sub

        Private Shared Sub PrintException(ex As Exception)
            If ex IsNot Nothing Then
                Console.WriteLine($"Message: {ex.Message}")
                Console.WriteLine("Stacktrace:")
                Console.WriteLine(ex.StackTrace)
                Console.WriteLine()
                PrintException(ex.InnerException)
            End If
        End Sub

    End Class

End Namespace

Keterangan

Beberapa kemunculan umum, seperti menyalin atau memindahkan file atau direktori, tidak sesuai langsung dengan peristiwa, tetapi kejadian ini menyebabkan peristiwa dinaikkan. Saat Anda menyalin file atau direktori, sistem menaikkan Created peristiwa di direktori tempat file disalin, jika direktori tersebut sedang diawasi. Jika direktori tempat Anda menyalin sedang ditonton oleh instans lain , FileSystemWatchertidak ada peristiwa yang akan dinaikkan. Misalnya, Anda membuat dua instans .FileSystemWatcher FileSystemWatcher1 diatur untuk menonton "C:\My Documents", dan FileSystemWatcher2 diatur untuk menonton "C:\Your Documents". Jika Anda menyalin file dari "Dokumen Saya" ke "Dokumen Anda", Created peristiwa akan dimunculkan oleh FileSystemWatcher2, tetapi tidak ada peristiwa yang dimunculkan untuk FileSystemWatcher1. Tidak seperti menyalin, memindahkan file atau direktori akan memunculkan dua peristiwa. Dari contoh sebelumnya, jika Anda memindahkan file dari "Dokumen Saya" ke "Dokumen Anda", Created peristiwa akan dinaikkan oleh FileSystemWatcher2 dan Deleted peristiwa akan dinaikkan oleh FileSystemWatcher1.

Nota

Operasi sistem file umum mungkin memunculkan lebih dari satu peristiwa. Misalnya, ketika file dipindahkan dari satu direktori ke direktori lainnya, beberapa peristiwa OnChanged dan beberapa peristiwa OnCreated serta OnDeleted mungkin dimunculkan. Memindahkan file adalah operasi kompleks yang terdiri dari beberapa operasi sederhana, oleh karena itu meningkatkan beberapa peristiwa. Demikian juga, beberapa aplikasi (misalnya, perangkat lunak antivirus) dapat menyebabkan peristiwa sistem file tambahan yang terdeteksi oleh FileSystemWatcher.

Nota

Urutan di mana Created peristiwa dinaikkan sehubungan dengan peristiwa lain FileSystemWatcher dapat berubah ketika SynchronizingObject properti bukan null.

Peristiwa OnCreated dimunculkan segera setelah file dibuat. Jika file sedang disalin atau ditransfer ke direktori yang ditonton, OnCreated acara akan segera dinaikkan, diikuti oleh satu atau beberapa OnChanged peristiwa.

Berlaku untuk

Lihat juga