我需要使用哪个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);