エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

FileSystemWatcher.Changed イベント

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

名前空間:  System.IO
アセンブリ:  System (System.dll 内)

[IODescriptionAttribute("FSW_Changed")]
public event FileSystemEventHandler Changed

Changed イベントは、監視しているディレクトリ内のファイルまたはディレクトリのサイズ、システム属性、最後の書き込み時刻、最後のアクセス時刻、またはセキュリティ アクセス許可が変更された場合に発生します。

メモメモ

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

NotifyFilter を使用して、このイベントを処理するときに発生する通知の数を制限します。

メモメモ

ファイル名が変更されると Changed イベントが思いがけず発生しますが、ディレクトリ名が変更されたときには発生しません。 名前の変更をウォッチするには、Renamed イベントを使用します。

メモメモ

Changed イベントが他の FileSystemWatcher イベントに関連して発生する順序は、SynchronizingObject プロパティが null でないときに変更することがあります。

Changed イベントを使用して、ウォッチ対象のファイルが変更されたときにファイル パスをコンソールに表示する例を次に示します。


using System;
using System.IO;
using System.Security.Permissions;

public class Watcher
{

    public static void Main()
    {
    Run();

    }

    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    public static void Run()
    {
        string[] args = System.Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program.
        if(args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // Begin watching.
        watcher.EnableRaisingEvents = true;

        // Wait for the user to quit the program.
        Console.WriteLine("Press \'q\' to quit the sample.");
        while(Console.Read()!='q');
    }

    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
    }
}



.NET Framework

サポート対象 : 4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

この .NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、次を参照してください。.NET Framework システム要件.

コミュニティの追加

追加
表示:
© 2014 Microsoft