日期:2014-05-18 浏览次数:20788 次
public static void OnChanged(object sender, FileSystemEventArgs e) { //指定当文件被更改、创建或删除时要做的事 Console.WriteLine("file:" + e.FullPath + "__" + e.ChangeType + "___" + e.GetType()); if (e.ChangeType == WatcherChangeTypes.Deleted) { string ext = Path.GetExtension(e.Name); // 获取文件的扩展名,这就是文件的类型,然后进一步处理 } }
------解决方案--------------------
好像没有什么好办法,我的做法是开两个FileSystemWatcher,一个的NotifyFilter指定FileName,另一个指定DirectoryName。两个FileSystemWatcher的Deleted添加不同的事件。这样能解决对文件与文件夹的Delete执行不同操作的问题。但是这样如果Path所指示的文件夹引发Change事件的话会产生两次,不过这对我没影响,因为我只想监控其里面的文件系统的变化。