如何取得文件最后修改日期(100分)

  • 主题发起人 主题发起人 peterzhou20
  • 开始时间 开始时间
P

peterzhou20

Unregistered / Unconfirmed
GUEST, unregistred user!
如何取得文件最后修改日期
 
用GetFileTime()函数来得到文件的修改日期
然后用FileDateToDateTime将日期格式一下。
 
用以下函数
function GetFileLastAccessTime(sFileName:string;uFlag:byte):TDateTime;
var
ffd:TWin32FindData;
dft:DWord;
lft:TFileTime;
h:THandle;
begin
h:=FindFirstFile(PChar(sFileName),ffd);
if h<>INVALID_HANDLE_VALUE then
begin
case uFlag of
FILE_CREATE_TIME:FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
FILE_MODIFY_TIME:FileTimeToLocalFileTime(ffd.ftLastWriteTime,lft);
FILE_ACCESS_TIME:FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
else
FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
end;
FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
Result:=FileDateToDateTime(dft);
windows.FindClose(h);
end
else
result:=0;
end;
 
GetFileTime()就可以了呀
 
var cc:cardinal;
ctime,latime,lwtime:pfiletime; //创建时间,上次访问时间,上次修改时间
filename:string;
begin
filename:='project1.ext';
cc:= FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
if cc<0 then
begin
showmessage('打开文件失败');
exit;
end;
getfiletime(cc,ctime,latime,lwtime);
end;
 
用不著那麼麻煩.
Delphi提供了一個FileAge,和一個FileDateToDateTime函數.使用如下.
begin
if OpenDialog1.Execute then
ShowMessage(FormatDateTime('yyyy/MM/dd HH:mm:ss',FileDateToDateTime(FileAge(OpenDialog1.FileName)));
end;
 

GetFileTime()函数可以得到文件的最后修改日期,然后你需要调用
FileDateToDateTime 将日期进行转化,最后显示时用formatdatetime格式一下。
 
后退
顶部