我正在使用 .net 2.0 filewatcher 来监视文件夹中的新文件。它工作得很好,除非我一次放置超过 80 个文件。该事件不再触发。就好像 filewatcher 被设置为跟踪一定数量的文件。
目前我已经要求用户一次不要放置超过 50 个文件,这似乎可行,但我想修复它,以便可以一次将数百个文件放入文件夹中。
这是我在事件中使用的代码。这是非常标准的东西,没什么特别的。
FileWatcher = new FileSystemWatcher();
FileWatcher.Path = ConfigurationManager.AppSettings["FolderOfFilesToWatch"];
FileWatcher.NotifyFilter = NotifyFilters.FileName;
FileWatcher.Filter = "*_*_*.*";
FileWatcher.Created += new FileSystemEventHandler(watcher_Created);
FileWatcher.EnableRaisingEvents = true;
static void watcher_Created(object sender, FileSystemEventArgs e)
{
Console.Write(e.Name);
}
有什么想法吗?
最佳答案
您可能需要增加 FileSystemWatcher。 InternalBufferSize .默认情况下,FileSystemWatcher 使用较小的缓冲区来提高性能,如果在短时间内发生太多更改,则可能会溢出。
尝试设置更大的缓冲区大小以防止发生这种情况。
关于c# - .Net FileWatcher 无法处理 ~80 多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940819/