可能的重复:
文件更新时的 Delphi 通知 https://stackoverflow.com/questions/3418562/delphi-notification-when-a-file-gets-updated
需要监视创建文件并对其进行计数。
操作系统:WinXP及以上。
去年我有同样的需求并尝试了 Iztok Kacin 的 Directory Watch。他回复了电子邮件,并且对回答我的问题非常有帮助。
他的代码有效,但我需要在特定文件夹中的文件被删除时得到通知closed,出于某种奇怪的原因,Microsoft 的 ReadDirectoryChanges API(它所依赖的)不提供(令人抓狂)。我似乎还记得 Iztok 的代码使用了线程,感觉不够轻量,无法满足我的需求。
我最终使用了一种非常简单的方法,但对我来说效果非常好。在每隔几秒触发一次的 TTimer 事件中,我对正在监视的文件夹使用 FindFirst。找到的所有文件都放入持久的 TStringList 中。任何在以前的 TTimer 事件的 StringList 中找到的文件都是新文件。 (为了检测文件是否已关闭,我尝试以独占模式打开该文件。如果无法打开它,则它不会添加到 TStringList 中,因此会在下一个事件中检查它。)
我非常犹豫是否使用这种方法,认为它太暴力了。但是,对于我的需求,这个解决方案非常有效,值得庆幸的是,它涉及少量非常简单的代码,易于理解和维护。
HTH
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)