使用 FileSystemWatcher 监视指定目录中的更改。可监视指定目录中的文件或子目录的更改。
以下是一个简单的实例,用来监控指定目录下文件的新增、删除、重命名等情况(文件内容更改会触发多次,还未想到更好的办法)。
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 FileSystemWatcher w = new FileSystemWatcher(@"C:\test"); //给定监控目录,实例化监控类
6 w.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName; //监控类型为目录名、文件名
7 w.Filter = "*.*";
8 w.IncludeSubdirectories = true; //监控子目录
9 w.Created += new FileSystemEventHandler(OnCreated); //新增文件时触发事件
10 w.Deleted += new FileSystemEventHandler(OnDeleted); //删除文件时触发事件
11 w.Renamed += new RenamedEventHandler(OnRenamed); //删除文件时触发事件
12 w.EnableRaisingEvents = true; //启用监控
13 Console.WriteLine(@"监控已启动,监控目录是C:\test");
14 Console.ReadKey();
15 }
16
17 private static void OnRenamed(object sender, FileSystemEventArgs e)
18 {
19 Console.WriteLine(DateTime.Now.ToString() + "\t重命名了【" + e.Name+"】");
20 }
21
22 private static void OnDeleted(object sender, FileSystemEventArgs e)
23 {
24 Console.WriteLine(DateTime.Now.ToString() + "\t删除了【" + e.Name + "】");
25 }
26
27 private static void OnCreated(object sender, FileSystemEventArgs e)
28 {
29 Console.WriteLine(DateTime.Now.ToString() + "\t新建了【" + e.Name + "】");
30 }
31 }