Created
June 4, 2012 13:23
-
-
Save Dynyx/2868346 to your computer and use it in GitHub Desktop.
FileSystemWatcher example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment