FileSystemWatcher.Created Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando viene creato un file o una directory nell'oggetto specificato Path .
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
Tipo evento
- Attributi
Esempio
Nell'esempio seguente viene usato l'evento Created per visualizzare il percorso del file nella console ogni volta che viene creato il file watched.
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
Commenti
Alcune occorrenze comuni, ad esempio la copia o lo spostamento di un file o di una directory, non corrispondono direttamente a un evento, ma queste occorrenze causano la generazione di eventi. Quando si copia un file o una directory, il sistema genera un Created evento nella directory in cui è stato copiato il file, se la directory viene osservata. Se la directory da cui è stata copiata è stata osservata da un'altra istanza di FileSystemWatcher, non verrà generato alcun evento. Ad esempio, si creano due istanze di FileSystemWatcher. FileSystemWatcher1 è impostato su "C:\My Documents" e FileSystemWatcher2 è impostato su "C:\Your Documents". Se si copia un file da "Documenti personali" in "Documenti", verrà generato un Created evento da FileSystemWatcher2, ma non viene generato alcun evento per FileSystemWatcher1. A differenza della copia, lo spostamento di un file o di una directory genera due eventi. Nell'esempio precedente, se è stato spostato un file da "Documenti" a "Documenti", verrà generato un Created evento da FileSystemWatcher2 e verrà generato un Deleted evento da FileSystemWatcher1.
Annotazioni
Le operazioni comuni del file system possono generare più eventi. Ad esempio, quando un file viene spostato da una directory a un'altra, potrebbero essere generati diversi OnChanged e alcuni OnCreated e OnDeleted eventi. Lo spostamento di un file è un'operazione complessa costituita da più operazioni semplici, generando quindi più eventi. Analogamente, alcune applicazioni (ad esempio, il software antivirus) potrebbero causare eventi aggiuntivi del file system rilevati da FileSystemWatcher.
Annotazioni
L'ordine in cui l'evento Created viene generato in relazione agli altri FileSystemWatcher eventi può cambiare quando la SynchronizingObject proprietà non nullè .
L'evento OnCreated viene generato non appena viene creato un file. Se un file viene copiato o trasferito in una directory watched, l'evento OnCreated verrà generato immediatamente, seguito da uno o più OnChanged eventi.