gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 18:33:21 26 4
gpt4 key购买 nike

我在这里和网上遇到过几个“解决方案”,但似乎没有一个符合要求。

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

问题是文件 FileSystemWatcher.Created 事件在创建整个文件之前被触发(通过大文件的副本最明显)。

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

提前致谢! :)

最佳答案

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

  1. 如果您可以与文件的创建者合作并为文件使用重命名方案。例如。在创建时将文件创建为 __Name_,并在过程结束时将其重命名为 Name,事件将触发,您将获得完整的文件。

  2. 当您的触发器触发时,检查您是否可以获得文件的独占只读锁定。如果可以,那么对文件的写入操作已经完成。 (我在另一个问题 Keep settings in sync between forms application and windows service (or any n-tier, really) 中写了一些关于这个的内容)

您可以将类似 #2 的内容集成到您的已更改事件中,然后您将获得结果。

关于C#:使用 FileSystemWatcher 监视复制或移动的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com