Csharp/C#教程:FileSystemWatcher失败,有1000个文件创建分享


FileSystemWatcher失败,有1000个文件创建

我正在使用FileSystemWatcher监视文件夹A.如果创建文件或将文件复制到该文件夹​​,它将被移动到文件夹B.

我通过右键单击选择“新建”,选择“文本文档”,在文件夹A中创建了一个文件。 文件立即移动到文件夹B. 但是如果我使用程序在文件夹A中创建1000个文件,那么它们就不会移动到文件夹B.因为看起来FileSystemWatcher无法检测到1000个文件是由程序创建的。

有人能为我解释一下吗?

看起来1000个文件将超出FileSystemWatcher的缓冲区。 这里有很好的解释

链接摘录:

缓冲区大小和错误事件

FileSystemWatcher类通过捕获所有相关文件和较旧的更改并将它们放入缓冲区来工作。 然后,一次处理一次,直到处理完所有通知并且缓冲区为空。 默认情况下,内部缓冲区的大小为8千字节(8192字节)。 每个事件最多可占用缓冲区的16个字节,不包括文件名。 这意味着当在短时间内发生很多变化时,缓冲区很快就会过载并且通知可能会丢失。

从FileSystemWatcher处理正确的错误事件将允许您编写这种可能性的代码。 例如,使用您自己的逻辑检查和/或操作错误事件的文件夹…

上述就是C#学习教程:FileSystemWatcher失败,有1000个文件创建分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/936581.html

(0)
上一篇 2021年11月7日
下一篇 2021年11月7日

精彩推荐