2017-04-05 53 views
-1

FileSystemWatcher类似乎没有复制事件。FileSystemWatcher复制事件

如何最好地检测副本?

目前,我已经为观察文件夹内的所有MD5校验和建立索引;我是否应该对每个Create事件运行索引的线性搜索以查找重复的MD5?

+0

一些代码会有所帮助。已经尝试过了什么?让我们看看你的代码。 –

+0

代码真的适合这个问题吗?它更像是一个逻辑问题,而不是代码问题 – Tobiq

+0

副本只是文件夹中新文件的创建。这不是别的,所以为了检测副本,您必须改为处理创建。你如何决定它是一个副本还是一个新的文件操作取决于你需要怎么处理这些信息,以及你对这个区别有多重要。 –

回答

0

FileSystemWatcher类接收低级别输入,所以基本上对于任何复制&移动操作,您都坚持使用Create

创建散列并对其进行比较可能是检测副本的唯一可靠方法。

不幸的是,它也有一些主要的缺点,比如当一个甚至多个文件被改变时CPU /驱动器的资源成本相对较高。由于您需要监视任何文件更改,并使这些哈希保持最新状态。想想大文件,计算这些散列可能需要一段时间,如果在您仍然需要计算散列更新时完成复制操作,该怎么办?那时候,你甚至都不知道它是一个狂野的副本。