我的应用包含其数据库中的文档。用户可以打开文档,在这种情况下,文档会保存到临时文件夹中并在用户的计算机上打开。
我希望在更改其中一个临时文件时收到通知,并让用户将更改后的文档保存回数据库。
在Delphi7中执行此操作的最简单方法是什么? (我想它需要一些shell魔法或第三方组件)
谢谢!
答案 0 :(得分:8)
您可以使用TJvChangeNotify
集合中的JEDI JVCL组件检测临时文件(或任何文件)中的更改。
答案 1 :(得分:5)
你可以:
使用Win32 API SHChangeNotifyRegister函数监视临时文件夹中的更改,然后检查您的临时文件是否报告更改。
因为您知道您感兴趣的确切文件,所以您可以使用计时器或线程中的FindFirstFile直接手动监视它们的大小和时间戳。
< / LI> 醇>答案 2 :(得分:4)
除了RRuz和Remy Lebeau写的内容:
请注意TJvChangeNotify
单元中的JvChangeNotify
使用FindFirstChangeNotification
API调用; this是MSDN文档。请注意,这有点违反直觉:请参阅下面提到的有关如何在while循环中使用它的线程。
还有ReadDirectoryChanges
API调用,该调用未包含在JCL/JVCL中,并且包含MSDN文档here,并且还有Delphi win32 example。
This thread解释了两个API调用之间的差异。
- 的Jeroen
答案 3 :(得分:2)