C#
下面的示例创建一个 FileSystemWatcher 对象,以便在运行时监视指定的目录。FileSystemWatcher 对象监视在 LastWrite 和 LastAccess 时间方面的更改,以及目录中文本文件的创建、删除或重命名。如果更改、创建或删除文件,则文件路径显示在控制台上。在文件重命名后,旧路径和新路径都将显示在控制台上。
此示例使用 System.Diagnostics 和 System.IO 命名空间。
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); } }