Преобразовать TFileTime в TDateTime
Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch
function FileTimeToDateTime(FileTime: TFileTime): TDateTime;
var
ModifiedTime: TFileTime;
SystemTime: TSystemTime;
begin
Result := 0;
if (FileTime.dwLowDateTime = 0) and (FileTime.dwHighDateTime = 0) then
Exit;
try
FileTimeToLocalFileTime(FileTime, ModifiedTime);
FileTimeToSystemTime(ModifiedTime, SystemTime);
Result := SystemTimeToDateTime(SystemTime);
except
Result := Now; // Something to return in case of error
end;
end;
function DateTimeToFileTime(FileTime: TDateTime): TFileTime;
var
LocalFileTime, Ft: TFileTime;
SystemTime: TSystemTime;
begin
Result.dwLowDateTime := 0;
Result.dwHighDateTime := 0;
DateTimeToSystemTime(FileTime, SystemTime);
SystemTimeToFileTime(SystemTime, LocalFileTime);
LocalFileTimeToFileTime(LocalFileTime, Ft);
Result := Ft;
end;
{
Типичный пример использования когда нам нужно получить информацию о файле:
- дата и время создания
- дата и время последнего доступа
- дата и время последней модификации
}
procedure TForm1.Button1Click(Sender: TObject);
var
SR: TSearchRec;
LastWrite, LastAccess, CreateTime: TDateTime;
begin
FindFirst(ParamStr(0), faArchive, SR);
LastWrite := FileTimeToDateTime(SR.FindData.ftLastWriteTime);
LastAccess := FileTimeToDateTime(SR.FindData.ftLastAccessTime);
CreateTime := FileTimeToDateTime(SR.FindData.ftCreationTime);
FindClose(SR);
ShowMessage('Имя файла: ' + ParamStr(0) + #13#13+
'Создан: ' + DateTimeToStr(CreateTime) + #13#13+
'Изменен: ' + DateTimeToStr(LastWrite) + #13#13+
'Последний доступ: ' + DateTimeToStr(LastAccess))
end;
|