Registriert seit: 24. Okt 2004
1.542 Beiträge
Delphi XE Architect
|
Timestap auslesen von einer datei funktioniert nicht
30. Apr 2007, 13:44
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
Alex "Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
|