120.C# FileSystemWatcher 文件系统侦听类

摘要

侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。

正文

属性

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。<br><br>(继承自 Component)

EnableRaisingEvents

获取或设置一个值,该值指示是否启用此组件。

Events

获取附加到此 Component 的事件处理程序的列表。<br><br>(继承自 Component)

Filter

获取或设置用于确定在目录中监视哪些文件的筛选器字符串。

Filters

获取用于确定在目录中监视哪些文件的所有筛选器的集合。

IncludeSubdirectories

获取或设置一个值,该值指示是否应监视指定路径中的子目录。

InternalBufferSize

获取或设置内部缓冲区的大小(以字节为单位)。

NotifyFilter

获取或设置要监视的更改的类型。

Path

获取或设置要监视的目录的路径。

Site

获取或设置 ISite 的 FileSystemWatcher。

SynchronizingObject

获取或设置用于封送因目录更改而发出的事件处理程序调用的对象。

FileSystemWatcher 用于监视运行时指定的目录。 该组件设置为监视 LastWrite 目录中文本文件的创建、删除或重命名更改的时间 LastAccess 和时间。 如果文件已更改、创建或删除,则文件的路径将填入ListBox。 重命名文件时,旧路径和新路径将将填入ListBox。

120.C#FileSystemWatcher文件系统侦听类

namespace s66
{
    public partial class Form1 : Form
    {
        FileSystemWatcher watcher;
        public Form1()
        {
            InitializeComponent();
            watcher = new FileSystemWatcher();
            watcher.Path = @"d:\bz";
            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;
            watcher.Created += Watcher_Created;
            watcher.Deleted += Watcher_Deleted;
            watcher.Renamed += Watcher_Renamed;
            watcher.Changed += Watcher_Changed;
            watcher.EnableRaisingEvents = true;
        }


        private void Watcher_Renamed(object sender, RenamedEventArgs e)
        {
            this.Invoke(() =>
            {
                lstWatch.Items.Add(e.FullPath + " " + "RENAME");
            });
        }

        private void Watcher_Deleted(object sender, FileSystemEventArgs e)
        {
            this.Invoke(() =>
            {
                lstWatch.Items.Add(e.FullPath + " " + "DELETE");
            });
        }

        private void Watcher_Created(object sender, FileSystemEventArgs e)
        {
            this.Invoke(() =>
            {
                lstWatch.Items.Add(e.FullPath + " " + "ADD");
            });
           
        }

        private void Watcher_Changed(object sender, FileSystemEventArgs e)
        {
            this.Invoke(() =>
            {
                lstWatch.Items.Add(e.FullPath + " " + "CHANGE");
            });
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }


    }
}

用于 FileSystemWatcher 监视指定目录中的更改。 可以监视指定目录的文件和子目录中的更改。 可以创建组件来监视本地计算机、网络驱动器或远程计算机上的文件。

若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 (“”) 或使用通配符 (“”。) 。 若要监视特定文件,请将 Filter 属性设置为文件名。

例如,若要监视文件MyDoc.txt中的更改,请将 Filter 属性设置为“MyDoc.txt”。

还可以监视特定类型的文件中的更改。 例如,若要监视文本文件中的更改,请将 Filter 属性设置为“*.txt”。