C# 保存office文档时FileSystemWatcher未触发事件

C# 保存office文档时FileSystemWatcher未触发事件,c#,.net,ms-office,filesystemwatcher,C#,.net,Ms Office,Filesystemwatcher,我正在使用FileSystemWatcher监视目录和子目录中的文件更改,并通过windows应用程序处理这些更改。配置监视程序时,我使用NotifyFilter CreationTime、LastWrite和属性。文件更改时,我的应用程序将接收事件。它在几乎所有使用我的应用程序的计算机上都能正常工作 但是,我的一位同事的计算机出现问题,我的应用程序无法检测到保存在受监视文件夹中的文件。进一步检查发现,只有office文件更改未被检测到。任何非office文件类型更改都会引发事件 我了解不同of

我正在使用FileSystemWatcher监视目录和子目录中的文件更改,并通过windows应用程序处理这些更改。配置监视程序时,我使用NotifyFilter CreationTime、LastWrite和属性。文件更改时,我的应用程序将接收事件。它在几乎所有使用我的应用程序的计算机上都能正常工作

但是,我的一位同事的计算机出现问题,我的应用程序无法检测到保存在受监视文件夹中的文件。进一步检查发现,只有office文件更改未被检测到。任何非office文件类型更改都会引发事件

我了解不同office应用程序的行为,在保存office文档时,文件会被保存为临时文件、复制、移动或重命名。我忽略了它们,因为我知道我感兴趣的文件的名称。我可以看到我的应用程序收到临时文件被更改的通知,但没有收到关于实际文件的通知。保存Document1.docx会在此特定计算机上引发以下事件

更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime
更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime
更改的fp:C:\Files\Folder1\~$cument1.docx f:Folder1\~$cument1.docx nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime
更改了fp:C:\Files\Folder1\~wrd000.tmp f:Folder1\~wrd000.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1\~wrd000.tmp f:Folder1\~wrd000.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1\~wrd000.tmp f:Folder1\~wrd000.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1\~wrd000.tmp f:Folder1\~wrd000.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1\~wrd000.tmp f:Folder1\~wrd000.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime
更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime
更改的fp:C:\Files\Folder1\~WRL0001.tmp f:Folder1\~WRL0001.tmp nf:Attributes,LastWrite,CreationTime
更改了fp:C:\Files\Folder1 f:Folder1 nf:Attributes、LastWrite、CreationTime

我创建了一个小应用程序,通过修改各种通知过滤器和事件类型来测试更改。事实证明,一旦我添加NotifyFilters.Security,它也开始为实际文档引发事件

我不知道为什么它会发生在这台电脑上。问题计算机是一台装有bitlocker的windows 8.1笔记本电脑。同一个应用程序在其他具有相同操作系统和bitlocker的类似笔记本电脑上运行良好


添加NotifyFilters.Security是一个非常简单的修复方法,但我很想知道为什么它很重要。你知道原因是什么吗?

我也有同样的问题。我也不知道为什么会发生这种情况,我同意你的说法,这可能与Office创建临时文件有关。但是,考虑到没有可投票的有效响应,感谢您提供有关NotifyFilters.Security的快速修复。