FileSystemWatcher.Deleted イベント

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

Public Event Deleted As FileSystemEventHandler
[C#]
public event FileSystemEventHandler Deleted;
[C++]
public: __event FileSystemEventHandler* Deleted;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、FileSystemEventArgs 型の引数を受け取りました。次の FileSystemEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
ChangeType 発生したディレクトリ イベントの種類を取得します。
FullPath 影響を受けるファイルまたはディレクトリの絶対パスを取得します。
Name 影響を受けるファイルまたはディレクトリの名前を取得します。

解説

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

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

使用例

 
Public Class Watcher
    
    Public Shared Sub Main()
        Dim args() As String = System.Environment.GetCommandLineArgs()
        ' If a directory is not specified, exit the program.
        If args.Length <> 2 Then
            ' Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)")
            Return
        End If
        
        ' Create a new FileSystemWatcher and set its properties.
        Dim watcher As 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 Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName)
        ' Only watch text files.
        watcher.Filter = "*.txt"
        
        ' Add event handlers.
        AddHandler watcher.Changed, AddressOf OnChanged
        AddHandler watcher.Created, AddressOf OnChanged
        AddHandler watcher.Deleted, AddressOf OnChanged
        AddHandler watcher.Renamed, AddressOf OnRenamed
        
        ' Begin watching.
        watcher.EnableRaisingEvents = True
        
        ' Wait for the user to quit the program.
        Console.WriteLine("Press 'q' to quit the sample.")
        While Chr(Console.Read()) <> "q"c
        End While
    End Sub
     
    ' Define the event handlers.
    Private Shared Sub OnChanged(source As Object, e As FileSystemEventArgs)
        ' Specify what is done when a file is changed, created, or deleted.
        Console.WriteLine("File: " & e.FullPath & " " & e.ChangeType)
    End Sub    
    
    Private Shared Sub OnRenamed(source As Object, e As RenamedEventArgs)
        ' Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath)
    End Sub
    
End Class


[C#] 
public class Watcher
{

    public static void Main()
    {

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


[C++] 
public __gc class Watcher
{
public:
    // Define the event handlers.
    static void OnChanged(Object* /*source*/, FileSystemEventArgs* e)
    {
        // Specify what is done when a file is changed, created, or deleted.
        Console::WriteLine(S"File: {0} {1}", e->FullPath, __box(e->ChangeType));
    }

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


int main()
{

    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(S"Usage: Watcher.exe (directory)");
        return 0;
    }

    // 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 = static_cast<NotifyFilters>( NotifyFilters::LastAccess | NotifyFilters::LastWrite 
        | NotifyFilters::FileName | NotifyFilters::DirectoryName );
    // Only watch text files.
    watcher->Filter = S"*.txt";

    // Add event handlers.
    watcher->Changed += new FileSystemEventHandler(0, Watcher::OnChanged);
    watcher->Created += new FileSystemEventHandler(0, Watcher::OnChanged);
    watcher->Deleted += new FileSystemEventHandler(0, Watcher::OnChanged);
    watcher->Renamed += new RenamedEventHandler(0, Watcher::OnRenamed);

    // Begin watching.
    watcher->EnableRaisingEvents = true;

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

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

FileSystemWatcher クラス | FileSystemWatcher メンバ | System.IO 名前空間 | Created | OnCreated | FileSystemEventArgs | FileSystemEventHandler | OnDeleted