我创建了一个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件事被解雇了。一个是改变,另一个是创造。我只希望触发文件创建事件。如何在第一次创建文件时避免文件更改事件?
答案 0 :(得分:1)
根据MSDN的设计,为了解决这个问题,我会看到一个常见的事件处理程序,然后我会检查FileSystemEventArgs以查看{{3}用于文件创建或更改。
从上面链接:
创建文件后立即引发OnCreated事件。如果正在将文件复制或传输到监视目录中,则会立即引发OnCreated事件,然后是一个或多个OnChanged事件。