我有两个应用程序,CREATOR
(我不能修改)和OBSERVER
。 CREATOR操纵许多文件,我需要OBSERVER来知道这是什么时候发生的。我用C#编写了OBSERVER,并使用了FileSystemWatcher
。我将路径设置为我的路径,将筛选器设置为FILE
并添加所有必需的事件。但是,当CREATOR修改文件时,OBSERVER中不会引发任何事件。奇怪的是,当我手工修改文件时,OBSERVER 确实看到了更改。我认为CREATOR可能不会释放该文件,但是当我关闭CREATOR时,OBSERVER仍然看不到更改。问题fileSystemWatcher
任何想法我做错了什么?
额外的详细信息: 当CREATOR修改文件,我可以手工删除它,或者当我打开文件,我看到所有的更改都保存。
编辑
我FileSystemWatcher的对象设置:
fileSystemWatcherObs.EnableRaisingEvents = true;
fileSystemWatcherObs.Filter = "kbd.dbf";
fileSystemWatcherObs.IncludeSubdirectories = true;
fileSystemWatcherObs.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.Attributes |
NotifyFilters.CreationTime | NotifyFilters.DirectoryName |NotifyFilters.LastAccess | NotifyFilters.Security |
NotifyFilters.Size;
fileSystemWatcherObs.Path = "D:\\FOLDER";
fileSystemWatcherObs.SynchronizingObject = this;
fileSystemWatcherObs.Changed += new System.IO.FileSystemEventHandler( this.fileSystemWatcherObs_Changed);
fileSystemWatcherObs.Created += new System.IO.FileSystemEventHandler(this.fileSystemWatcherObs_Created);
fileSystemWatcherObs.Deleted += new System.IO.FileSystemEventHandler(this.fileSystemWatcherObs_Deleted);
fileSystemWatcherObs.Renamed += new System.IO.RenamedEventHandler(this.fileSystemWatcherObs_Renamed);
,当然方法为这个事件
请阅读此:http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx – Oded
因此,你有一个应用程序修改文件,而你用filesystemwatcher编写和应用程序来检查这些修改,但它没有注意到你的“创建者”应用程序何时修改它们?请发布您的“观察员”应用程序的相关代码。 – Aerik
是的,确切地说。我不知道我在做什么错误 – nirmus