5
A
回答
5
你可能想看看this article(A目录监视器类德尔福),并在从Windows API此功能:ReadDirectoryChanges
你也应该看一看这太问题,因为它可能适合你的需求:Delphi notification when a file gets updated
4
去年我有同样的需要,并尝试了Iztok Kacin的目录观察:http://www.cromis.net/blog/downloads/directory-watch/。他回复了电子邮件,对回答我的问题非常有帮助。
他的代码工作,但我需要的时刻被通知的文件中的特定文件夹中关闭,这对于微软一些奇怪的原因,ReadDirectoryChanges API(它依赖)(令人恼火)没有按”提供。我似乎也记得Iztok的代码使用了线程,并且没有足够的轻量级来满足我的需求。
我最终使用了一种令人惊讶的简单方法,它对我来说非常有效。在每隔几秒钟触发的TTimer事件中,我在我正在监视的文件夹上使用FindFirst。所有找到的文件都放在一个持久的TStringList中。任何发现的文件都不在以前的TTimer事件的StringList中。 (要检测一个文件是否关闭,我尝试以独占模式打开该文件,如果我无法打开它,则不会将它添加到TStringList,因此它会在下一个事件中进行检查。)
我很安静犹豫使用这种方法,认为这太蛮力。但是,为了满足我的需求,这个解决方案出色地完成了,并且非常幸运,只涉及少量非常简单的代码,这些代码很容易理解和维护。
HTH
相关问题
- 1. delphi - 监视目录中的文件更改 - 在JCL中实现?
- 2. delphi xe文件加密
- 3. 如何监控vala中的目录?
- 4. 目录监控
- 5. 如何在delphi 7项目目录中添加MSWord文件
- 6. kQueue目录监控
- 7. 问题在Delphi XE
- 8. 在Delphi中安装HTML组件XE
- 9. 如何监控本地文件目录NSMetaDataQuery
- 10. BDE与Delphi XE
- 11. Delphi XE + SOAP + SSL
- 12. Delphi XE图标
- 13. Delphi XE Jedi 3.45
- 14. Firebird和Delphi XE
- 15. Delphi 2010中的TWordApplication-XE
- 16. 如何用Bash监控目录?
- 17. 仅在Rad Studio XE中查看Delphi当前文件的断点?
- 18. 活动目录监控
- 19. 如何通过Delphi中的所有子目录搜索文件
- 20. 如何使用PowerShell监控目录中传入和处理文件的数量?
- 21. Tomcat Servlet Jnotify目录监控
- 22. Delphi XE 2中的代码完成不适用于Delphi 7中的.pas文件
- 23. BPEL流程监控目录
- 24. 在Delphi中设置RegularExpressions的帮助XE
- 25. 监控触发文件并复制该目录中的所有文件
- 26. POPCNT在Delphi XE/XE2 64
- 27. WCF服务监控目录
- 28. 监控远程FTP目录
- 29. Delphi XE和Winrunner(QTP)
- 30. Jedi Library和Delphi XE
为什么有人在我的答案上面投了票? – RobertFrank 2011-04-24 13:20:05
谁知道?......实际上这很烦人。由于解决方案有效,所以需要+1进行补偿 – yms 2011-05-03 00:00:33
请注意,该库存在一个小错误。您需要在TDirWatchThread.Execute中添加Terminate(在SignalError(ErrorMessage)之后) - 如果没有它,当您从文件夹中删除所有文件时,会进入无限循环,然后是文件夹本身! – Ampere 2017-04-22 10:30:49