如何才能知道一个文件的修改时间? ( 积分: 20 )

  • 主题发起人 主题发起人 sy0116
  • 开始时间 开始时间
S

sy0116

Unregistered / Unconfirmed
GUEST, unregistred user!
在windows资源管理器里选择一个文件点击右键选择属性会有一个“修改时间”项,请问如何才能取得这个时间
 
在windows资源管理器里选择一个文件点击右键选择属性会有一个“修改时间”项,请问如何才能取得这个时间
 
用GetFileTime,其中的第三个参数就是
 
GetFileTime //uses Windows;<br>procedure TForm1.Button1Click(Sender: TObject);<br>Var<br> &nbsp;hFile : THandle;<br> &nbsp;FT : TFileTime;<br> &nbsp;ST : TSystemTime;<br>Begin<br> &nbsp;If Not OpenDialog1.Execute Then Exit;<br> &nbsp;hFile := FileOpen(OpenDialog1.FileName, fmOpenWrite or fmShareDenyNone);<br> &nbsp;GetFileTime(hFile, @FT, @FT, @FT);<br> &nbsp;FileTimeToSystemTime(FT, ST);<br> &nbsp;//ST.wYear、ST.wMonth...<br> &nbsp;FileClose(hFile);<br>end;
 
用楼上的方法取到了两个文件的时间,但如何比较这两个时间是否相同呢?
 
If (FT1.dwLowDateTime=FT2.dwLowDateTime) And (FT1.dwLowDateTime=FT2.dwLowDateTime)<br> &nbsp;showmessage('时间相同');
 
{获取文件时间 &nbsp;需在Uses加入ShellAPI} <br>{最后修改时间11:14 2002-04-03,整理:JUKY} <br><br>function TF_shuxing.getfiletime(sfilename:string;timetype:integer):tdatetime; <br>var <br> &nbsp; ffd:TWin32FindData; <br> &nbsp; dft:DWord; <br> &nbsp; lft,Time:TFileTime; <br> &nbsp; h:THandle; <br>begin <br> &nbsp; h:=windows.FindFirstFile(pchar(sfilename),ffd); <br> &nbsp; if h&lt;&gt;INVALID_HANDLE_VALUE then begin <br> &nbsp; &nbsp; &nbsp;case timetype of <br> &nbsp; &nbsp; &nbsp; &nbsp; 0: time:=ffd.ftCreationTime; <br> &nbsp; &nbsp; &nbsp; &nbsp; 1: time:=ffd.ftLastAccessTime; <br> &nbsp; &nbsp; &nbsp; &nbsp; 2: time:=ffd.ftLastWriteTime; <br> &nbsp; &nbsp;end; <br> &nbsp; &nbsp; &nbsp;windows.FindClose(h); <br> &nbsp; &nbsp; &nbsp;filetimetolocalfiletime(time,lft); <br> &nbsp; &nbsp; &nbsp;filetimetodosdatetime(lft,longrec(dft).hi,longrec(dft).lo); <br> &nbsp; &nbsp; &nbsp;result:=filedatetodatetime(dft); <br> &nbsp; &nbsp; &nbsp;filedate:=datetimetostr(result); <br> &nbsp;end <br> &nbsp; else result:=0; <br>end;
 
接受答案了.
 
后退
顶部