Ash*_*Ash 20 c# filesystemwatcher
我意识到FileSystemWatcher不提供Move事件,而是为同一个文件生成单独的Delete和Create事件.(FilesystemWatcher正在观察源文件夹和目标文件夹).
但是,我们如何区分真正的文件移动和一些文件的随机创建,该文件恰好与最近删除的文件同名?
FileSystemEventArgs类的某种属性,例如"AssociatedDeleteFile",如果它是移动的结果,则分配已删除的文件路径,否则为NULL,这将是很好的.但当然这不存在.
我也理解FileSystemWatcher在基本的文件系统级别运行,因此"移动"的概念可能仅对更高级别的应用程序有意义.但如果是这种情况,人们会建议在我的应用程序中使用什么样的算法来处理这种情况?
根据反馈更新:
FileSystemWatcher类似乎看到将文件移动为2个不同的事件,删除原始文件,然后在新位置创建.
不幸的是,这些事件之间没有提供"链接",因此如何区分文件移动和普通的删除或创建并不明显.在操作系统级别,移动被特别处理,您可以几乎立即移动说1GB文件.
一些答案建议在文件上使用散列来在事件之间可靠地识别它们,我将合理地采用这种方法.但如果有人知道如何更简单地发现一个动作,请留下答案.
| 归档时间: |
|
| 查看次数: |
15334 次 |
| 最近记录: |