FileSystemWatcher 组件疑难解答

更新:2007 年 11 月

使用 FileSystemWatcher 组件时,您可能会遇到以下情况:

Windows NT 4.0 计算机上不接受 UNC 路径名

如果您正在 Windows NT 4.0 版的计算机上使用 FileSystemWatcher 组件,并尝试设置该组件的路径来监视另一 Windows NT 4.0 版的计算机上的文件系统活动,则将无法在 Path 属性中指定基于 UNC 的路径值以指向所监视的计算机。只有在 Windows 2000 计算机上工作时才能设置基于 UNC 的值。

无法监视 Windows 95 或 Windows 98 目录

如果您将 FileSystemWatcher 组件设置为引用 Windows 95 或 Windows 98 计算机上的目录,则将在项目运行时收到有关无效目录路径的错误。使用 FileSystemWatcher 时,将无法监视运行 Windows 95 或 Windows 98 的计算机上的目录。

为单一操作生成的多个 Created 事件

在某些情况下,您可能会注意到单一创建事件会生成多个由您的组件来处理的 Created 事件。例如,如果您使用 FileSystemWatcher 组件来监视目录中新文件的创建,然后使用记事本创建一个文件以对其进行测试,您将看到两个已生成的 Created 事件(尽管只创建了一个文件)。这是因为“记事本”在写进程期间执行多个文件系统操作。“记事本”按批写入磁盘,这些批会创建文件的内容和文件属性。其他应用程序可能以同样的方式执行。由于 FileSystemWatcher 监视操作系统活动,因此将会选取这些应用程序触发的所有事件。

说明:

记事本还可以导致其他有趣的事件生成。例如,如果您使用 NotifyFilter 指定只需要监视属性变化,然后使用记事本写入到所监视的目录中的一个文件,则将引发一个事件。这是因为“记事本”在此操作期间更新了文件的 Archived 属性。

在目录中生成的意外事件

如果更改通过 FileSystemWatcher 组件监视的目录中的文件,则不仅对该文件生成 Changed 事件,还会为目录本身生成类似的事件。这是因为该目录为它所包含的每个文件都保留若干类型的信息,包括文件的大小和名称、修改日期以及属性等等。当上述属性之一更改时,该目录也将发生关联的更改。

请参见

任务

如何:创建 FileSystemWatcher 组件实例

文件通知示例

概念

关于监视文件系统事件的介绍