axi*_*oft 7 delphi directory monitoring file delphi-xe
可能重复:
文件更新时的Delphi通知
需要监视创建文件并对其进行计数.操作系统:WinXP和高.
去年我有同样的需求并尝试了Iztok Kacin的目录观察:http://www.cromis.net/blog/downloads/directory-watch/ .他回复了电子邮件,对回答我的问题非常有帮助.
他的代码工作正常,但我需要在特定文件夹中的文件被关闭的时候得到通知,由于某些奇怪的原因,来自Microsoft(疯狂地)的ReadDirectoryChanges API(它依赖于它)不提供.我似乎还记得,Iztok的代码使用了线程,并没有足够的重量来满足我的需求.
我最终使用了一种非常简单的方法,对我来说非常有效.在每隔几秒触发的TTimer事件上,我在我正在监视的文件夹上使用FindFirst.找到的所有文件都放在持久的TStringList中.找到的任何文件都不是以前TTimer事件的StringList中的新文件.(为了检测文件是否关闭,我尝试以独占模式打开文件.如果我无法打开它,那么它不会被添加到TStringList中,所以它会在下一个事件中被检查.)
我对使用这种方法非常犹豫,认为它太过暴力.但是,为了满足我的需求,这个解决方案非常好用,幸运的是,它包含了一些易于理解和维护的非常简单的代码.
HTH
您可能需要查看本文(适用于Delphi的目录监视器类),以及Windows API中的此功能:ReadDirectoryChanges
您还应该看一下这个问题,因为它可能符合您的需求:文件更新时的Delphi通知
| 归档时间: |
|
| 查看次数: |
7153 次 |
| 最近记录: |