我需要使用哪个FileSystemWatcherfilter来查找新文件
到目前为止,我知道FileSystemWatcher可以查看一个文件夹,如果该文件夹中的任何文件被更改,修改,.etc …然后我们就可以处理它。 但我不确定在我的场景中应该使用哪个filter和事件:监视文件夹,如果文件被添加到该文件夹,请执行XYZ …所以在我的场景中我不关心现有文件是否已更改等等。应该忽略这些…当且仅当新文件已添加到该文件夹时才执行XYZ …
您为此方案推荐了哪个事件和filter?
设置观察者:
FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = "Blah"; watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName; watcher.Created += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true;
然后实现FileCreated
委托:
private void OnChanged(object source, FileSystemEventArgs e) { Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); }
请查看FileSystemWatcher的详细说明: http : //www.c-sharpcorner.com/uploadfile/mokhtarb2005/fswatchermb12052005063103am/fswatchermb.aspx
如果要查找添加的文件,则必须查找已创建的文件。
您可以通过设置WatcherChangeType枚举的值来指定要监视的更改类型。 可能的值如下:
- 全部:创建,删除,更改或重命名文件或文件夹。
- 已更改:文件或文件夹的更改。 更改类型包括:更改大小,属性,安全设置,上次写入和上次访问时间。
- 已创建:创建文件或文件夹。
- 已删除:删除文件或文件夹。
- 重命名:重命名文件或文件夹。
此外,您可以连接在创建(添加)文件时触发的事件处理程序,并且不实现所有其他事件,因为它们对您不感兴趣:
watcher.Created += new FileSystemEventHandler(OnChanged);