-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDirectoryWatcher.cs
More file actions
65 lines (54 loc) · 1.98 KB
/
DirectoryWatcher.cs
File metadata and controls
65 lines (54 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.IO;
// Watches files in the temp directory for changes.
// TODO: Rework to work correctly with the GUI thread in WPF.
namespace DirectoryWatcher
{
public class Program
{
static void Main()
{
var watcher = new ConsoleDirectoryWatcher("C:\\Temp");
Console.ReadKey();
}
}
public class ConsoleDirectoryWatcher : DirectoryWatcher
{
public ConsoleDirectoryWatcher(String pathToMonitor) : base(pathToMonitor) {}
public override void createdHandler() { Console.WriteLine("Created"); }
public override void modifiedHandler() { Console.WriteLine("Modified"); }
public override void deletedHandler() { Console.WriteLine("Deleted"); }
}
public class DirectoryWatcher
{
public DirectoryWatcher(String pathToMonitor)
{
var watcher = new FileSystemWatcher(pathToMonitor);
watcher.Created += createdEvent;
watcher.Changed += modifiedEvent;
watcher.Deleted += deletedEvent;
watcher.EnableRaisingEvents = true;
}
private void createdEvent(Object sender, FileSystemEventArgs e)
{
var callback = new createdHandlerCallback(createdHandler);
callback.Invoke();
}
delegate void createdHandlerCallback();
public virtual void createdHandler() {}
private void modifiedEvent(Object sender, FileSystemEventArgs e)
{
var callback = new createdHandlerCallback(modifiedHandler);
callback.Invoke();
}
delegate void modifiedHandlerCallback();
public virtual void modifiedHandler() {}
private void deletedEvent(Object sender, FileSystemEventArgs e)
{
var callback = new createdHandlerCallback(deletedHandler);
callback.Invoke();
}
delegate void deletedHandlerCallback();
public virtual void deletedHandler() {}
}
}