文件监视器( FileSystemWatcher) 类的使用

正如你所想象的,文件监视器类的作用正如其字面含义,它监视一个系统文件,你只需给一个路径,它将触发一个事件当这个路径下文件变化时.它可以监视文件的"重命名","删除","改变"和"创建".让我们来看一下代码:
1 FileSystemWatcher watcher  =   new  FileSystemWatcher();
2 watcher.Path  =   @" C:\MyDirectory " ;
3 watcher.Renamed  +=   new  RenamedEventHandler(watcher_Renamed)
4 watcher.EnableRaisingEvents  =   true ;    
正如你所看到的, FileSystemWatcher 的用法相当的简单.这里每一个行为都会被监视的,一旦你想把这些事件挂上,在这个重命名例子中,你已经设置 EnableRaisingEvents 属性为 true,它将开始监视,在这个例子中, 任何在C:\MyDirectory 目录下的文件重命名时, watcher_Renamed 方法都将被调用, 这个 RenamedEventHandler 包含了很多关于这个重命名文件的有用的信息 - 像文件的就名字(old file name)和新文件名( new file name).
void watcher_Renamed ( object sender, RenamedEventArgs e )
{
  Console. WriteLine ( "File Renamed: Old Name: " + e. OldName +
    " New Name: " + e. Name );
}

在这个 FileSystemWatcher 类中其他所有的事件将通过一个 FileSystemEventArgs 对象传给事件处理程序.

watcher. Deleted += new FileSystemEventHandler (watcher_Deleted );
watcher. Changed += new FileSystemEventHandler (watcher_Changed );
watcher. Created += new FileSystemEventHandler (watcher_Created );

FileSystemEventArgs 包含文件名, 完全路径名和导致事件的行为.
所以如果你想监视一个单独的文件或者一个单独类型的文件(像.txt文件)这个 FileSystemWatcher 包含一个 Filter 属性来处理.
//watches only myFile.txt
watcher. Filter = "myFile.txt";
//watches all files with a .txt extension
watcher. Filter = "*.txt";
这个 Filter 属性能接受通配符. 在这个例子中, 当一个.txt条件的文件改变时,事件将被触发.
最好 FileSystemWatcher 一个重要的属性 IncludeSubdirectories. 这个属告诉类去监视你所给文件夹和其子文件夹下的所有文件.
这个 FileSystemWatcher 类是简单的, 但当一个文件被"重命名","创建","改变"或"删除"时,请记得这个类.                                                                          

转载于:https://www.cnblogs.com/yangjie5188/archive/2008/02/22/1078296.html

猜你喜欢

转载自blog.csdn.net/weixin_34175509/article/details/93499935