从FileSystemWatcher创建事件中获取文件计数

本文关键字:文件 获取 FileSystemWatcher 创建 事件 | 更新日期: 2023-09-27 18:10:03

我想知道是否有办法获得要复制的文件数量?我的意思是…我正在编写一个包含网格的应用程序,其功能类似于windows资源管理器。当我拖放文件时,它们被复制到目标文件夹,我的网格应该刷新。我的FileSystemWatcher向我发送关于创建文件的事件&网格刷新,但对于多个文件,它刷新多次=/那么是否有一种方法可以找出有多少文件被复制,或者在一个事件中获得文件集合?

从FileSystemWatcher创建事件中获取文件计数

我将构建一个适配器,在延迟之后限制并引发类似的事件。这个ThrottlingFileSystemWatcher看起来几乎与标准FileSystemWatcher相同,但不是为每个文件引发事件,而是将文件排队并在稍后的TimeSpan中引发事件(例如5秒,但使其可配置),并包括它在EventArgs中看到的所有文件。

我将使刷新不那么准确,并让它只在定义的时间后再次刷新。因此它可以解决所有未来的刷新问题和/或用户刷新问题。我也会使刷新时间可配置,每个用户都很满意。

我曾经编写过一个类似于@Austin Salonen的解决方案。

当接收到一个新的文件事件时,检查是否正在运行倒计时计时器。

  • 如果没有,启动
  • 如果正在运行,将其重置为3秒(时间
    )(取决于文件大小和文件传输速度)。

当倒计时计时器触发时,然后更新GUI。