代码之家  ›  专栏  ›  技术社区  ›  nokturnal

C#:使用FileSystemWatcher监视复制或移动的文件

  •  8
  • nokturnal  · 技术社区  · 14 年前

    我在这里和网络上遇到过几种“解决方案”,但似乎都不合适。

    我要做的是让一个应用程序监视文件夹中的新文件(通过创建、移动或复制),并对这些对象执行操作。在这种情况下,我转向FileSystemWatcher类来执行此操作。

    有没有办法让这个事件在文件创建结束时而不是开始时触发?我尝试了FileSystemWatcher.NofityFilter属性的各种组合,但都没有成功。

    提前谢谢!:)

    4 回复  |  直到 14 年前
        1
  •  6
  •   Community mxfmd    7 年前

    对于这种情况,我使用了几种解决方案。

    1. 如果您可以与文件的创建者合作并对文件使用重命名方案。创建文件为 在创建过程结束时将其重命名为 姓名 事件将启动,你有一个完整的文件。

    2. Keep settings in sync between forms application and windows service (or any n-tier, really) )

        2
  •  1
  •   Ashley Grenon    14 年前

    嗯,有趣的问题。我在看大文件的时候从没用过这个东西。做了一点搜索,似乎一个解决方案是监视已更改的事件。因为一旦文件复制完成(在created被激发之后),也会抛出一个changed事件(导致文件的大小增加)

    我在这里读到的更多细节: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/f84bb7c8-b7d5-44da-b0f3-6d1a70415d11/

        3
  •  1
  •   Boris Modylevsky    14 年前

    我知道,我要告诉你的看起来并不优雅。我还必须监视从不同地方传来的文件,有些文件很大,有些文件很小。我们发现,FileSystemWatcher在这方面并不可靠。如果您想100%确定,可以使用Timer类及其经过的事件偶尔检查一次。

        4
  •  0
  •   Eugene Mayevski 'Callback    11 年前