Hi DPler
Hab mal wieder ein Problem für euch
Ich will den Timestap einer
datei auslesen (aber nur den "Geändert am"). Dazu verwende ich folgende Funktion:
Delphi-Quellcode:
function GetFileLastModifiedTimeStap(const FileName: string) : TDateTime;
var
FileHandle : THandle;
DateInfo: TFileTime;
SysTimeStruct: SYSTEMTIME;
TimeZoneInfo: TTimeZoneInformation;
Bias: Double;
begin
Result := 2; //01.01.1900 00:00:00
Bias := 0;
FileHandle := FileOpen(FileName, fmOpenRead or fmShareDenyWrite);
if FileHandle > 0 then
begin
try
if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24
GetFileTime(FileHandle, nil, nil, @DateInfo);
if FileTimeToSystemTime(DateInfo, SysTimeStruct) then result := SystemTimeToDateTime(SysTimeStruct) - Bias;
finally
FileClose(FileHandle);
end;
end;
end;
So diese Funktion funktioniert eigentlich ganz gut. Bis auf des das eine Stunde fehlt. D.h. das programm sagt 12:42:00 meine systemuhr aber 13:42:00
natürlich könnte ich jetzt einfach eine stunde dazu zählen nur weiß ich nicht wie sich des auf anderen System (mit anderen Zeitzonen ...) auswirkt