gpt4 book ai didi

.net - 为什么 FileSystemWatcher 在将文件复制到目录时会创建多个更改事件

转载 作者:行者123 更新时间:2023-12-04 22:17:45 25 4
gpt4 key购买 nike

我已经使用 .Net FileSystemWatcher 编写了一个小型测试应用程序来监视目录。当我将一个大型(几 Mb​​)文件复制到该目录中时,我会列出以下事件(请参见屏幕截图 - 并忽略删除事件开始)。

alt text http://robinwilson.homelinux.com/FSW.png

我得到一个创建的事件(如预期的那样),但随后发生了两个更改的事件(相隔约 0.7 秒)。为什么是这样?这将导致我计划开发的应用程序出现重大问题 - 因为我会尝试对文件执行两次操作(大概是在完成写入之前一次!)。我能做些什么来阻止这种情况发生吗?从我在 StackOverflow 和其他地方阅读的内容来看,一旦文件被更改然后关闭,您应该只获得一个更改的事件。为什么我要两个?

最佳答案

根据 documentation(请参阅事件和缓冲区大小下的第一个要点):

Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher.

关于.net - 为什么 FileSystemWatcher 在将文件复制到目录时会创建多个更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/172060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com