毕业论文

当前位置: 毕业论文 > 范文 >

FileSystemWatcher的C#的FileSystemWatcher用法(2)

时间:2021-03-10 12:31来源:辣文论文
Deleted -- 文件或文件夹的删除。 Renamed -- 文件或文件夹的重命名。 private delegate void setLogTextDelegate(FileSystemEventArgs e); //声明传递FileSystemEventArgs对象的委托,

Deleted   --  文件或文件夹的删除。 

Renamed   --  文件或文件夹的重命名。

private delegate void setLogTextDelegate(FileSystemEventArgs e); //声明传递FileSystemEventArgs对象的委托,用于文件Created,Deleted和Changed变动时更新UI界面。

 

private delegate void renamedDelegate(RenamedEventArgs e);  //声明传递RenamedEventArgs对象的委托,用于文件Renamed时更新UI界面。

 

FileSystemWatcher fsw= new FileSystemWatcher();

 

fsw.Path = “C:\”;   //设置监控的文件目录

 

fsw.IncludeSubdirectories = true;   //设置监控C盘目录下的所有子目录

 

fsw.Filter = "*.txt|*.doc|*.jpg";   //设置监控文件的类型

 

fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size;   //设置文件的文件名、目录名及文件的大小改动会触发Changed事件

 

fsw.Created += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle);  //绑定事件触发后处理数据的方法。

 

fsw.Deleted += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle);

 

fsw.Changed += new FileSystemEventHandler(this.fileSystemWatcher_EventHandle);

 

fsw.Renamed += new RenamedEventHandler(this.fileSystemWatcher_Renamed);  //重命名事件与增删改传递的参数不一样。

 

fsw.EnableRaisingEvents = true;  //启动监控

 

private void fileSystemWatcher_EventHandle(object sender, FileSystemEventArgs e)  //文件增删改时被调用的处理方法

 

{

 

     if (this.listView1.InvokeRequired)  //判断是否跨线程

 

      {

 

           this.listView1.Invoke(new setLogTextDelegate(setLogText), new object[] { e });   //使用委托将方法封送到UI主线程处理

 

      }

 

}

 

private void fileSystemWatcher_Renamed(object sender,RenamedEventArgs e)   //文件重命名时被调用的处理方法

 

{

 

      if (this.listView1.InvokeRequired) //判断是否跨线程

 

       { 

 

           this.listView1.Invoke(new renamedDelegate(setRenamedLogText), new object[] { e });  //使用委托将方法封送到UI主线程处理

 

       }

 

}

 

private void setLogText(FileSystemEventArgs e)  //更新UI界面

 

{

 

      ListViewItem lvi = new ListViewItem();

 

      lvi.SubItems.Add(e.Name);   //受影响的文件名

 

      lvi.SubItems.Add(e.ChangeType.ToString());   //受影响文件的变动类型(可能为Created、Changed、Deleted)

 

      lvi.SubItems.Add(e.FullPath);     //受影响的文件完整路径

 

      this.listView1.Items.Add(lvi);

 

}

 

 private void setRenamedLogText(RenamedEventArgs e)  //更新UI界面 FileSystemWatcher的C#的FileSystemWatcher用法(2):http://www.751com.cn/fanwen/lunwen_71170.html

------分隔线----------------------------
推荐内容