c# 中的FileSystemWatcher问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 中的FileSystemWatcher问题相关的知识,希望对你有一定的参考价值。

c# 中的FileSystemWatcher:如果正在将文件复制或传送至一个受监视的目录,OnCreated 事件将立即发生,随后发生一个或多个 OnChanged 事件。请问该如何避免呢?

有两种办法可以解决
1、可以设置文件监视的类型
FileSystemWatcher fileWatcher = new FileSystemWatcher();
fileWatcher.NotifyFilter
2、可以通过FileSystemEventArgs类的ChangeType属性去判断,是否为创建文件引发的事件
void fileWatcher_Changed(object sender, FileSystemEventArgs e)

if (e.ChangeType == WatcherChangeTypes.Created)



参考技术A 你可以这样做,复制文件时先以临时文件名复制入受监视目录。复制完成后再改为正式的名称。然后监控renamed事件 。比使用Created及Changed事件要简单一些。

C#(098):文件监视 FileSystemWatcher

FileSystemWatcher [FileSystemWatcher 类 (System.IO) | Microsoft Docs](https://docs.microsoft.com/zh cn/dotnet/api/system.io.filesystemwatcher?view=net

以上是关于c# 中的FileSystemWatcher问题的主要内容,如果未能解决你的问题,请参考以下文章

C#的FileSystemWatcher用法实例详解

C#:FileSystemWatcher - 多个监视文件夹问题

用FileSystemWatcher对象监控C#目录改变

C# FileSystemWatcher - 多个事件

C#(098):文件监视 FileSystemWatcher

c# FileSystemWatcher如何处理多个文件?