我正在使用 FileSystemWatcher 监视文件夹 A。如果创建文件或将文件复制到该文件夹中,它将被移动到文件夹 B。
我通过右键单击、选择“新建”、选择“文本文档”在文件夹 A 中创建了一个文件。该文件立即移至文件夹 B。但是,如果我使用程序在文件夹 A 中创建 1000 个文件,那么它们不会移动到文件夹 B。 FileSystemWatcher 似乎无法检测到程序创建的 1000 个文件。
谁能为我解释一下吗?
看起来 1000 个文件将超出 FileSystemWatcher 的缓冲区。伟大的解释在这里 http://www.blackwasp.co.uk/FileSystemWatcher.aspx.
链接摘录:
缓冲区大小和错误事件
FileSystemWatcher 类的工作原理是
捕获所有相关文件并
旧的更改并将它们放入
缓冲。然后将其处理一个
一次改变一次,直到所有
通知已得到处理并且
缓冲区为空。默认情况下,
内部缓冲区的大小为 8
千字节(8192 字节)。每个事件都可以
最多占用十六个字节的缓冲区
其数据,不包括文件
姓名。这意味着当有一个
短时间内发生很多变化
随着时间的推移,缓冲区很快就会变成
超载和通知可以
丢失的。
处理来自 FileSystemWatcher 的正确错误事件将允许您针对这种可能性进行编码。例如。使用您自己的逻辑检查和/或操作错误事件的文件夹...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)