英語で読む

次の方法で共有


FileSystemWatcher.Created イベント

定義

指定した Path のファイルまたはディレクトリが作成されたときに発生します。

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;

イベントの種類

属性

次の例では、 イベントを 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);
            }
        }
    }
}

注釈

ファイルやディレクトリのコピーや移動など、一般的な一部の出現はイベントに直接対応していませんが、これらの出現によってイベントが発生します。 ファイルまたはディレクトリをコピーすると、そのディレクトリが監視されている場合、ファイルのコピー先ディレクトリでイベントが発生 Created します。 コピー元のディレクトリが の別の FileSystemWatcherインスタンスによって監視されていた場合、イベントは発生しません。 たとえば、 の 2 つのインスタンスを作成します FileSystemWatcher。 FileSystemWatcher1 は "C:\My Documents" watchに設定され、FileSystemWatcher2 は "C:\Your Documents" をwatchに設定されます。 "My Documents" から "Your Documents" にファイルをコピーすると、 Created FileSystemWatcher2 によってイベントが発生しますが、FileSystemWatcher1 のイベントは発生しません。 コピーとは異なり、ファイルまたはディレクトリを移動すると、2 つのイベントが発生します。 前の例から、ファイルを "My Documents" から "Your Documents" に移動した場合、FileSystemWatcher2 によってイベントが発生しDeletedCreatedFileSystemWatcher1 によってイベントが発生します。

注意

一般的なファイル システム操作では、複数のイベントが発生する可能性があります。 たとえば、あるディレクトリから別のディレクトリにファイルを移動すると、いくつかの OnChanged イベントと OnCreatedOnDeleted イベントが発生する可能性があります。 ファイルの移動は、複数の単純な操作で構成される複雑な操作であるため、複数のイベントを発生させます。 同様に、一部のアプリケーション (ウイルス対策ソフトウェアなど) では、 によって FileSystemWatcher検出される追加のファイル システム イベントが発生する可能性があります。

注意

プロパティが でないnull場合SynchronizingObject、他FileSystemWatcherCreatedイベントに関連してイベントが発生する順序が変更される可能性があります。

イベントは OnCreated 、ファイルが作成されるとすぐに発生します。 監視対象ディレクトリにファイルがコピーまたは転送されている場合、 OnCreated イベントは直ちに発生し、その後に 1 つ以上 OnChanged のイベントが発生します。

適用対象

製品 バージョン
.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

こちらもご覧ください