DELPHI 如何判断一个文件的更新?(这个文件是不定时更新的)(100分)

  • 主题发起人 主题发起人 ihweb
  • 开始时间 开始时间
I

ihweb

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI 如何判断一个文件的更新?(这个文件是不定时更新的)<br>例如:<br>D:/a.txt<br>这个文件是不定时更新的,有时候一个小时才添加一行,有时候一秒就添加几行。<br>DELPHI如何判断他的更改呢??我想应该是用API函数的。可我有不会。大家帮帮忙吧!感谢。<br>
 
判断该文件的修改时间有没有改变<br><br>procdeure GetFileTime(const Tf:string);<br>{ 获取文件时间,Tf表示目标文件路径和名称 }<br>const<br>Model='yyyy/mm/dd,hh:mm:ss'; { 设定时间格式 }<br>var<br>Tp:TSearchRec; { 申明Tp为一个查找记录 }<br>T1,T2,T3:string;<br>begin<br>&nbsp; FindFirst(Tf,faAnyFile,Tp); { 查找目标文件 } T1:=FormatDateTime(Model,<br>&nbsp; CovFileDate(Tp.FindData.ftCreationTime)));<br>{ 返回文件的创建时间 }<br>&nbsp; T2:=FormatDateTime(Model,<br>&nbsp; CovFileDate(Tp.FindData.ftLastWriteTime)));<br>{ 返回文件的修改时间 }<br>&nbsp; T3:=FormatDateTime(Model,Now));<br>{ 返回文件的当前访问时间 }<br>&nbsp; FindClose(Tp);<br>end;<br>这里,只需要修改时间即可
 
记录它的一些特征值,比如字节数之类的。<br>比较!
 
完颜康,你好,感谢你的回复,我也曾经考虑过这个问题,但是我要每一秒去判断文件的修改时间啊?那不一样要调用TIMER,好占用资源的。
 
uses<br>&nbsp; MMSystem;<br><br>const<br>&nbsp; FileName='C:/Costsystem.exe';<br><br>var<br>&nbsp; OldAge:Integer;<br>&nbsp; TimeId:DWORD;<br><br>procedure TimeCallBack(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD) stdcall;<br>var<br>&nbsp; NewAge:Integer;<br>begin<br>&nbsp; NewAge:=FileAge(FileName); &nbsp;<br>&nbsp; if NewAge&lt;&gt;OldAge then<br>&nbsp; begin<br>&nbsp; &nbsp; //已經改變,處理...<br>&nbsp; &nbsp; OldAge:=NewAge;<br>&nbsp; end;<br>end;<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp; OldAge:=FileAge(FileName);<br>&nbsp; TimeId:=timeSetEvent(1000,0,@TimeCallback,0,1);<br>end;<br><br>procedure TForm1.FormDestroy(Sender: TObject);<br>begin<br>&nbsp; TimeKillEvent(TimeId);<br>end;<br>
 
不用timer,在application的onidle事件里就行了
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=849839
 
先感谢各位大侠的帮忙,让我把任务完成后,一定给大家配分,再次感谢。<br><br>看来我的想法也没错,是应该用函数的。感谢啦。
 
后退
顶部