3

我创建了一个 FileSystem 观察者并注册了 2 个事件。一个是为了创造,另一个是为了改变。

FileSystemWatcher fswInbound = new FileSystemWatcher();
fswInbound.Path = "path to directory";
fswInbound.EnableRaisingEvents = true;
fswInbound.InternalBufferSize = 12288;
fswInbound.Created += new FileSystemEventHandler(program.FileSystemWatcher_Created);
fswInbound.Changed += new FileSystemEventHandler(program.FileSystemWatcher_Created);

比在同一个程序中,我动态创建文件并尝试写入 FileSystem Watcher 正在侦听的文件夹。

using (StreamWriter outfile = new StreamWriter(filename))
{
      outfile.Write("Some really long string");
}

创建新文件后。2 个事件被触发。一个是为了改变,另一个是为了创造。我只希望触发文件创建事件。第一次创建文件时如何避免文件更改事件?

4

1 回答 1

1

这是根据MSDN设计的要解决它,我将有一个看起来像你有的通用事件处理程序,然后我会检查FileSystemEventArgs以检查文件创建或更改的ChangeType

从上面的链接:

创建文件后立即引发 OnCreated 事件。如果文件被复制或传输到监视目录,将立即引发 OnCreated 事件,然后是一个或多个 OnChanged 事件。

于 2012-07-14T04:41:21.257 回答