//==============================================================================
//修改文件‘创建’、‘修改’日期时间********************************************
//==============================================================================
function SetFileDateTime(FileName: string; TargetTime: TDateTime): string;
var FileHandle: HFile;
SystemTime: TSystemTime;
FileTime: TFileTime;
begin
DateTimeToSystemTime(TargetTime, SystemTime);
SystemTimeToFileTime(SystemTime, FileTime);
LocalFileTimeToFileTime(FileTime, FileTime);//将本地时间转化为系统的时间,再写入文件中
FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);//fmOpenWrite就带有GENERIC_WRITE的意思
if FileHandle<=0
then Result := 'Open File Error!!!'
else if not SetFileTime(FileHandle, @FileTime, @FileTime, @FileTime)
then Result := 'Set File Time Error!!!'
else Result := 'Set File Time Successfully!!!';
FileClose(FileHandle);
end;
//修改文件‘创建’、‘修改’日期时间********************************************
//==============================================================================
function SetFileDateTime(FileName: string; TargetTime: TDateTime): string;
var FileHandle: HFile;
SystemTime: TSystemTime;
FileTime: TFileTime;
begin
DateTimeToSystemTime(TargetTime, SystemTime);
SystemTimeToFileTime(SystemTime, FileTime);
LocalFileTimeToFileTime(FileTime, FileTime);//将本地时间转化为系统的时间,再写入文件中
FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);//fmOpenWrite就带有GENERIC_WRITE的意思
if FileHandle<=0
then Result := 'Open File Error!!!'
else if not SetFileTime(FileHandle, @FileTime, @FileTime, @FileTime)
then Result := 'Set File Time Error!!!'
else Result := 'Set File Time Successfully!!!';
FileClose(FileHandle);
end;
首部 function FileSetDate(Handle: Integer; Age: Integer): Integer; overload; platform; $[SysUtils.pas
功能 返回设置文件的修改时间
说明 修改成功则返回0
参考 function Windows.SetFileTime
例子 SpinEdit1.Value := FileSetDate(Edit1.Text, DateTimeToFileDate(StrToDateTime(Edit2.Text)));
http://kingron.myetang.com
var
vSearchRec: TSearchRec;
LocalFileTime: TFileTime;
I: Integer;
begin
if FindFirst('autoexec.bat', faAnyFile, vSearchRec) = 0 then FileTimeToLocalFileTime(vSearchRec.FindData.ftCreationTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo);
Memo1.Lines.Values['创建时间'] := DateTimeToStr(FileDateToDateTime(I)); FileTimeToLocalFileTime(vSearchRec.FindData.ftLastAccessTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo);
Memo1.Lines.Values['访问时间'] := DateTimeToStr(FileDateToDateTime(I)); FileTimeToLocalFileTime(vSearchRec.FindData.ftLastWriteTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo);
Memo1.Lines.Values['修改时间'] := DateTimeToStr(FileDateToDateTime(I));
FindClose(vSearchRec);
end;