取得檔案最後修改時間
要知道一個檔案文件是否曾被修改,一個方便的方法是看看它的最後修改日期,Delphi提供了兩個和文件日期有關的函數:FileAge和FileGetDate,但是它們返回的都是文件建立的時間而不是最後修改的時間。
Windows中每一個文件有三個時間屬性,建立時間、最後打開時間和最後修改時間,可以用下列函數取得:
function TFileTime2DateTime(Time: TFileTime): tDatetime; var LocalTime: TFileTime; DosTime: Integer; begin FileTimeToLocalFileTime(Time, LocalTime); FileTimeToDosDateTime(LocalTime, LongRec(DosTime).Hi, LongRec(DosTime).Lo); Result:=FileDateToDateTime(DosTime); end; function DateTime2TFileTime(Time: tDatetime): TFileTime; var LocalTime: TFileTime; DosTime: Integer; begin DosTime:=DateTimeToFileDate(Time); DosDateTimeToFileTime(LongRec(DosTime).Hi, LongRec(DosTime).Lo, LocalTime); LocalFileTimeToFileTime(LocalTime, Result); end; function GetFileCreationTime(const filename:string): tdatetime; var hFile: THandle; FileTime: TFileTime; begin hFile:=FileOpen(filename, fmOpenRead); try GetFileTime(hFile, @FileTime, nil, nil); Result:=TFileTime2DateTime(FileTime); finally FileClose(hFile); end; end; function GetFileLastAccessTime(const filename:string): tdatetime; var hFile: THandle; FileTime: TFileTime; begin hFile:=FileOpen(filename, fmOpenRead); try GetFileTime(hFile, nil, @FileTime, nil); Result:=TFileTime2DateTime(FileTime); finally FileClose(hFile); end; end; function GetFileLastWriteTime(const filename:string): tdatetime; var hFile: THandle; FileTime: TFileTime; begin hFile:=FileOpen(filename, fmOpenRead); try GetFileTime(hFile, nil, nil, @FileTime); Result:=TFileTime2DateTime(FileTime); finally FileClose(hFile); end; end;
沒有留言:
發佈留言