Gets or sets the filter string used to determine what files are monitored in a directory.
Namespace: System.IO
Assembly: System (in system.dll)
Visual Basic (Declaration)
Public Property Filter As String
Dim instance As FileSystemWatcher
Dim value As String
value = instance.Filter
instance.Filter = value
public string Filter { get; set; }
public:
property String^ Filter {
String^ get ();
void set (String^ value);
}
/** @property */
public String get_Filter ()
/** @property */
public void set_Filter (String value)
public function get Filter () : String
public function set Filter (value : String)
Property Value
The filter string. The default is "*.*" (Watches all files with a file extension.)
To watch changes in all files with a file extension, set the Filter property to an empty string (""). To watch a specific file, set the Filter property to the file name. For example, to watch for changes in the file MyDoc.txt, set the Filter property to "MyDoc.txt". You can also watch for changes in a certain type of file. For example, to watch for changes in any text files, set the Filter property to "*.txt".
The Filter applies to change notifications after they have gone through the buffer and does not limit what goes into the buffer. For more information on filtering out unwanted notifications before recording them in the buffer, see the NotifyFilter, IncludeSubdirectories, and InternalBufferSize properties.
The Filter accepts wildcards for matching files, as shown in the following examples.
| Filter string | Watches the following files |
| *.* | All files (default). An empty string ("") also watches all files. |
| *.txt | All files with a "txt" extension. |
| *recipe.doc | All files ending in "recipe" with a "doc" extension. |
| win*.xml | All files beginning with "win" with an "xml" extension. |
| Sales*200?.xls | Matches the following: Sales July 2001.xlsSales Aug 2002.xlsSales March 2004.xls but does not match: Sales Nov 1999.xls |
| MyReport.Doc | Watches only MyReport.doc |
The following example creates a FileSystemWatcher to watch the directory specified at run time. The component is set to watch for changes in LastWrite and LastAccess time, the creation, deletion, or renaming of text files in the directory. If a file is changed, created, or deleted, the path to the file prints to the console. When a file is renamed, the old and new paths print to the console.
Use the System.Diagnostics and System.IO namespaces for this example.
Public Class Watcher
Public Shared Sub Main()
Run()
End Sub
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
Private Shared Sub Run
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
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);
}
}
public ref class Watcher
{
private:
// 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( "File: {0} {1}", e->FullPath, e->ChangeType );
}
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 );
}
public:
[PermissionSet(SecurityAction::Demand, Name="FullTrust")]
int static run()
{
array<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 0;
}
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher^ watcher = gcnew 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 = "*.txt";
// Add event handlers.
watcher->Changed += gcnew FileSystemEventHandler( Watcher::OnChanged );
watcher->Created += gcnew FileSystemEventHandler( Watcher::OnChanged );
watcher->Deleted += gcnew FileSystemEventHandler( Watcher::OnChanged );
watcher->Renamed += gcnew RenamedEventHandler( Watcher::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' )
;
}
};
int main() {
Watcher::run();
}
public class Watcher
{
public static void main(String[] args1)
{
Run();
}
/** @attribute 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.set_Path(args[1]);
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories.
*/
watcher.set_NotifyFilter
(NotifyFilters.LastAccess |NotifyFilters.LastWrite |
NotifyFilters.FileName | NotifyFilters.DirectoryName);
// Only watch text files.
watcher.set_Filter("*.txt");
// Add event handlers.
watcher.add_Changed(new FileSystemEventHandler(OnChanged));
watcher.add_Created(new FileSystemEventHandler(OnChanged));
watcher.add_Deleted(new FileSystemEventHandler(OnChanged));
watcher.add_Renamed(new RenamedEventHandler(OnRenamed));
// Begin watching.
watcher.set_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.get_FullPath() + " "
+ e.get_ChangeType()));
} //OnChanged
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.get_OldFullPath(),e.get_FullPath());
} //OnRenamed
} //Watcher
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
.NET Framework
Supported in: 2.0, 1.1, 1.0