运用FileSystemWatcher监视内定目录,监视钦赐目录中

2019-09-23 03:02 来源:未知

使用FileSystemWatcher监视钦定目录中的更动。可监视钦定目录中的文件或子目录的改换。

.Net框架类库中的FileSystemWatcher如它的称呼同样是二个用以监视文件系统变化的一个控件。使用 FileSystemWatcher 监视钦命目录中的改造。可监视内定目录中的文件或子目录的退换。能够创造多个零部件来监视本地Computer、互联网驱动器或远程Computer上的文件。

.Net框架类库中的FileSystemWatcher如它的称号一样是贰个用来监视文件系统变化的一个控件。使用 FileSystemWatcher 监视钦定目录中的改变。可监视内定目录中的文件或子目录的转移。能够创立一个组件来监视本地计算机、网络驱动器或远程计算机上的公文。

以下是叁个轻易易行的实例,用来监督内定目录下文件的增加产量、删除、重命名等情景(文件内容改换会触发数十一遍,还未想到更加好的法子)。

若要监视全部文件中的改动,请将 Filter 属性设置为空字符串 或行使通配符(“*.*”)。若要监视特定的文书,请将 Filter 属性设置为该公文名。举个例子,若要监视文件 MyDoc.txt 中的改动,请将 Filter 属性设置为“MyDoc.txt”。也足以监视特定类型文件中的改变。例如,若要监视文本文件中的改换,请将 Filter 属性设置为“*.txt”。

若要监视全数文件中的改换,请将 Filter 属性设置为空字符串 ("") 或应用通配符(“*.*”)。若要监视特定的文件,请将 Filter 属性设置为该文件名。比方,若要监视文件 MyDoc.txt 中的改造,请将 Filter 属性设置为“MyDoc.txt”。也足以监视特定项目文件中的改造。比方,若要监视文本文件中的改造,请将 Filter 属性设置为“*.txt”。

 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 }

可监视目录或文件中的若干种更换。例如,可监视文件或目录的 Attributes、LastWrite 日期和岁月或 Size 方面包车型客车变动。通过将 NotifyFilter 属性设置为 NotifyFilters 值之一来达到此目标。

 

图片 1

可监视文件或目录的重命名、删除或创建。比方,若要监视文本文件的重命名,请将 Filter 属性设置为“*.txt”,并行使为其参数钦定的 Renamed 来调用 WaitForChanged 方法。

可监视目录或文件中的若干种改造。比如,可监视文件或目录的 Attributes、LastWrite 日期和时间或 Size 方面包车型地铁退换。通过将 NotifyFilter 属性设置为 NotifyFilters 值之一来到达此目标。

上面包车型大巴亲自去做使用FileSystemWatcher监视当前应用程序下的全体.txt文本文件的改造:

 

图片 2

可监视文件或目录的重命名、删除或创办。比如,若要监视文本文件的重命名,请将 Filter 属性设置为“*.txt”,并利用为其参数钦定的 Renamed 来调用 WaitForChanged 方法。

图片 3//定义FileSystemWatcher对象
FileSystemWatcherfsw=null;
publicfrm12FileSystemWatcher()
{
InitializeComponent();

 

//实例化二个FileSystemWatcher对象
fsw=newFileSystemWatcher();
//设置要监视的目录的路线,当前程序运转的目录
fsw.Path=Application.StartupPath;
//显明在目录中监视全体的.txt文件
fsw.Filter="*.txt";
//监视的目录中创制文件或目录时引发的平地风波
fsw.Created =newFileSystemEventHandler(fsw_Created);
//监视的目录中去除文件或目录时引发的事件
fsw.Deleted =newFileSystemEventHandler(fsw_Deleted);

上边包车型大巴自己要作为范例遵守规则使用FileSystemWatcher监视当前应用程序下的全体.txt文本文件的更换:

//监视的目录中改换文件或目录时引发的平地风波
//监视的目录中的文件或目录的大大小小、系统性能、
//上次写入时间、上次访谈时间或安全权限进行更动时
//能够由此设置可构成NotifyFilters枚举的分子,以同不平时间监视三类别型的更换
fsw.Changed =newFileSystemEventHandler(fsw_Changed);
}

图片 4

voidfsw_Changed(objectsender,FileSystemEventArgse)
{
//由于无法跨线程访谈,通佚名方法将展现操作交给主线程
this.Invoke((MethodInvoker)delegate(){listBox1.Items.Add("文件:" e.FullPath "被修改");});
}

 

voidfsw_Created(objectsender,FileSystemEventArgse)
{
//由于不可能跨线程访谈,通无名氏方法将突显操作交给主线程
this.Invoke((MethodInvoker)delegate(){listBox1.Items.Add("文件:" e.FullPath "被创建");});
}

图片 5;)

voidfsw_Deleted(objectsender,FileSystemEventArgse)
{
//由于无法跨线程访谈,通无名方法将显得操作交给主线程
this.Invoke((MethodInvoker)delegate(){listBox1.Items.Add("文件:" e.FullPath "被删除");});
}

       //定义FileSystemWatcher对象
        FileSystemWatcher fsw = null;
        public frm12FileSystemWatcher()
        {
            InitializeComponent();

privatevoidbtnStart_Click(objectsender,EventArgse)
{
//监视初步
fsw.EnableRaisingEvents=true;
//创制三个文件,并写入当前的日羊时间
File.AppendAllText("textFile.txt",DateTime.Now.ToString;
//修改文件,写入当前的日期时间
File.AppendAllText("textFile.txt",DateTime.Now.ToString;
//删除文件
File.Delete("textFile.txt");
}图片 6

            //实例化二个FileSystemWatcher对象
            fsw = new FileSystemWatcher();
            //设置要监视的目录的门道,当前程序运转的目录
            fsw.Path = Application.StartupPath;
            //显著在目录中监视全部的.txt文件
            fsw.Filter = "*.txt";
            //监视的目录中开创文件或目录时引发的轩然大波
            fsw.Created  = new FileSystemEventHandler(fsw_Created);
            //监视的目录中除去文件或目录时引发的风浪
            fsw.Deleted  = new FileSystemEventHandler(fsw_Deleted);

转自:张果先生 原著地址:

            //监视的目录中改变文件或目录时引发的轩然大波
            //监视的目录中的文件或目录的高低、系统特性、
            //上次写入时间、上次访谈时间或安全权限实行改造时
            //能够通过安装可组成 NotifyFilters 枚举的成员,以同有的时候间监视三类别型的改观
            fsw.Changed  = new FileSystemEventHandler(fsw_Changed);
        }

        void fsw_Changed(object sender, FileSystemEventArgs e)
        {
            //由于不能够跨线程访谈,通佚名方法将显得操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:"   e.FullPath   "被修改"); });
        }

        void fsw_Created(object sender, FileSystemEventArgs e)
        {
           //由于不可能跨线程访谈,通无名氏方法将呈现操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:"   e.FullPath   "被创建"); });
        }

        void fsw_Deleted(object sender, FileSystemEventArgs e)
        {
           //由于不能跨线程访谈,通佚名方法将呈现操作交给主线程
            this.Invoke((MethodInvoker)delegate() { listBox1.Items.Add("文件:"   e.FullPath   "被删除"); });
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            //监视开端
            fsw.EnableRaisingEvents = true;
            //成立三个文件,并写入当前的日期时间
            File.AppendAllText("textFile.txt", DateTime.Now.ToString());
            //修改文件,写入当前的日子时间
            File.AppendAllText("textFile.txt", DateTime.Now.ToString());
            //删除文件
            File.Delete("textFile.txt");
        }

图片 7;)

 

转自:张果老先生 原作地址:

版权声明:本文由韦德娱乐1946_韦德娱乐1946网页版|韦德国际1946官网发布于网络编程,转载请注明出处:运用FileSystemWatcher监视内定目录,监视钦赐目录中