使用FileSystemWatcher监视指定目录中的更改。我们可以监视指定目录下的文件或子目录的创建、删除、重命名。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。
- using System;
- using System.IO;
- namespace FileWatcherTest
- {
- class Program
- {
- static void Main(string[] args)
- {
- // Create watcher instance to watch "D:/"
- FileSystemWatcher fileWatcher = new FileSystemWatcher(@"D:/", "*.*");
- // Only watch doc files
- // fileWatcher.Filter = "*.doc";
- // Set watcher filter type
- fileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
- fileWatcher.EnableRaisingEvents = true;
- fileWatcher.IncludeSubdirectories = true;
- // Add event handlers
- fileWatcher.Changed += new FileSystemEventHandler(fileWatcher_Changed);
- fileWatcher.Created += new FileSystemEventHandler(fileWatcher_Created);
- fileWatcher.Renamed += new RenamedEventHandler(fileWatcher_Renamed);
- fileWatcher.Deleted += new FileSystemEventHandler(fileWatcher_Deleted);
- Console.ReadLine();
- }
- private static void fileWatcher_Changed(object sender, FileSystemEventArgs e)
- {
- // Specify what is done when a file is changed, created, or deleted
- Console.WriteLine(string.Format("File: {0} {1}", e.FullPath, e.ChangeType));
- }
- private static void fileWatcher_Created(object sender, FileSystemEventArgs e)
- {
- // Specify what is done when a file is created
- Console.WriteLine(string.Format("File: [{0}] is created", e.FullPath));
- }
- private static void fileWatcher_Renamed(object sender, System.IO.RenamedEventArgs e)
- {
- // Specify what is done when a file is renamed
- Console.WriteLine(string.Format("File: [{0}] is renamed to [{1}]", e.OldFullPath, e.FullPath));
- }
- private static void fileWatcher_Deleted(object sender, System.IO.FileSystemEventArgs e)
- {
- // Specify what is done when a file is deleted
- Console.WriteLine(string.Format("File: [{0}] is deleted", e.FullPath));
- }
- }
- }