FileSystemWatcher.Created Olay

Tanım

Belirtilen Path içindeki bir dosya veya dizin oluşturulduğunda gerçekleşir.

C#
public event System.IO.FileSystemEventHandler? Created;
C#
public event System.IO.FileSystemEventHandler Created;
C#
[System.IO.IODescription("FSW_Created")]
public event System.IO.FileSystemEventHandler Created;

Olay Türü

Öznitelikler

Örnekler

Aşağıdaki örnek, izlenen dosya her oluşturulduğunda konsolunun dosya yolunu görüntülemek için olayını kullanır Created .

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

Dosya veya dizin kopyalama veya taşıma gibi bazı yaygın oluşumlar doğrudan bir olaya karşılık gelmez, ancak bu oluşumlar olayların tetiklenmesine neden olur. Bir dosya veya dizini kopyaladığınızda, bu dizin izleniyorsa, sistem dosyanın kopyalandığı dizinde bir Created olay oluşturur. Kopyaladığınız dizin başka bir örneği tarafından izleniyorsa FileSystemWatcherhiçbir olay tetiklenmez. Örneğin, iki örneği FileSystemWatcheroluşturursunuz. FileSystemWatcher1 watch "C:\Belgelerim" olarak, FileSystemWatcher2 ise watch "C:\Belgeleriniz" olarak ayarlanır. "Belgelerim"den "Belgeleriniz"e bir dosya kopyalarsanız, FileSystemWatcher2 tarafından bir Created olay tetiklenir, ancak FileSystemWatcher1 için hiçbir olay tetiklanmaz. Kopyalamanın aksine, bir dosya veya dizinin taşınması iki olayı tetikler. Önceki örnekten, bir dosyayı "Belgelerim"den "Belgeleriniz"e taşıdıysanız, FileSystemWatcher2 tarafından bir Created olay ve FileSystemWatcher1 tarafından bir Deleted olay tetiklenir.

Not

Yaygın dosya sistemi işlemleri birden fazla olay tetiklenebilir. Örneğin, bir dosya bir dizinden diğerine taşındığında, birkaç OnChanged ve bazı OnCreated ve OnDeleted olaylar tetiklenebilir. Bir dosyayı taşımak, birden çok basit işlemden oluşan ve bu nedenle birden çok olay oluşturan karmaşık bir işlemdir. Benzer şekilde, bazı uygulamalar (örneğin, virüsten koruma yazılımı) tarafından FileSystemWatcheralgılanan ek dosya sistemi olaylarına neden olabilir.

Not

Özelliği olmadığındanull, olayın diğer FileSystemWatcher olaylarla ilişkili olarak tetiklenme sırası Created değişebilirSynchronizingObject.

Olay OnCreated , bir dosya oluşturulur oluşturulmaz oluşturulur. Bir dosya kopyalanıyor veya izlenen bir dizine aktarılıyorsa, OnCreated olay hemen tetiklenir ve ardından bir veya daha fazla OnChanged olay gelir.

Ş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.