I have the following app. It works great as a console app. It tracks any file changes, renames, or errors:
Expand|Select|Wrap|Line Numbers
- static void Main(string[] args)
- {
- FileSystemWatcher watcher = new FileSystemWatcher(@"C:\");
- watcher.NotifyFilter = (NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName);
- watcher.IncludeSubdirectories = true;
- watcher.Changed += new FileSystemEventHandler(OnChanged);
- watcher.Created += new FileSystemEventHandler(OnChanged);
- watcher.Deleted += new FileSystemEventHandler(OnChanged);
- watcher.Renamed += new RenamedEventHandler(OnRenamed);
- watcher.Error += new ErrorEventHandler(OnError);
- watcher.EnableRaisingEvents = true;
- Console.WriteLine("Press 'Enter' to exit...");
- Console.ReadLine();
- }
- private static void OnChanged(object source, FileSystemEventArgs e)
- {
- WatcherChangeTypes changeType = e.ChangeType;
- Console.WriteLine("File {0} {1}", e.FullPath, changeType.ToString());
- }
- private static void OnRenamed(object source, RenamedEventArgs e)
- {
- WatcherChangeTypes changeType = e.ChangeType;
- Console.WriteLine("File {0} {2} to {1}", e.OldFullPath, e.FullPath, changeType.ToString());
- }
- private static void OnError(object source, ErrorEventArgs e)
- {
- Console.WriteLine("An error has occurred.");
- }
But the following code does not display anything in textbox1. any ideas?
Expand|Select|Wrap|Line Numbers
- string str = "";
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- FileSystemWatcher watcher = new FileSystemWatcher(@"C:\");
- watcher.NotifyFilter = (NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName);
- watcher.IncludeSubdirectories = true;
- watcher.Changed += new FileSystemEventHandler(OnChanged);
- watcher.Created += new FileSystemEventHandler(OnChanged);
- watcher.Deleted += new FileSystemEventHandler(OnChanged);
- watcher.Renamed += new RenamedEventHandler(OnRenamed);
- watcher.Error += new ErrorEventHandler(OnError);
- watcher.EnableRaisingEvents = true;
- }
- private void OnChanged(object source, FileSystemEventArgs e)
- {
- str.Insert(str.Length, (e.FullPath + " " + e.ChangeType.ToString() + "\n"));
- textBox1.Invoke(new MethodInvoker(delegate { textBox1.Text = str; }));
- }
- private void OnRenamed(object source, RenamedEventArgs e)
- {
- str.Insert(str.Length, (e.OldFullPath + " " + e.FullPath + " to " + e.ChangeType.ToString() + "\n"));
- textBox1.Invoke(new MethodInvoker(delegate { textBox1.Text = str; }));
- }
- private void OnError(object source, ErrorEventArgs e)
- {
- str.Insert(str.Length, ("An error has occurred." + "\n"));
- textBox1.Invoke(new MethodInvoker(delegate { textBox1.Text = str; }));
- }
Thanks