TWin32FindData.TFileTime nach TDateTime?
Hai ihr alle,
wie kann ich denn TFileTime von TWin32FindData in ein TDateTime wandeln? Ich möchte mir für alle Dateien auf der HD die drei relevaten Datumswerte anzeigen lassen. Gruss Edit durch mich selber :-( :oops: Jetzt habe ich die deklaration im PSDK gefunden. So geht es dann:
Code:
P.S.: Wie kann ich denn jetzt eigentlich den Code Formatiert im Forum darstellen?
function FileTimeToDateTime (filetime : TFileTime): TDateTime;
var systime : TSystemTime; datetime : TDateTime; begin FileTimeToSystemTime (filetime,systime); datetime := EncodeDate (systime.wYear,systime.wMonth,systime.wDay); datetime := datetime + EncodeTime (systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds); result := datetime; end; |
Hai,
ich habe das ganze etwas geändert und vorallem die Abweichung zur UTC berücksichtigt. Eventuell hat ja jemand das schon gesucht :-)
Code:
[b]uses[/b]
IdGlobal; [b]function[/b] FileTimeToDate (filetime : TFileTime): TDate; [b]var[/b] systime : TSystemTime; [b]begin[/b] FileTimeToSystemTime (filetime,systime); result := EncodeDate (systime.wYear,systime.wMonth,systime.wDay); [b]end[/b]; [i]{****************************************************}[/i] [b]function[/b] FileTimeToTime (filetime : TFileTime): TTime; [b]var[/b] systime : TSystemTime; [b]begin[/b] FileTimeToSystemTime (filetime,systime); result := OffsetFromUTC + EncodeTime (systime.wHour,systime.wMinute,systime.wSecond,systime.wMilliseconds); [b]end[/b]; [i]{****************************************************}[/i] [b]function[/b] FileTimeToDateTime (filetime : TFileTime): TDateTime; [b]begin[/b] result := FileTimeToDate (filetime) + FileTimeToTime (filetime); [b]end[/b]; |
Erklärt mir mal einer was UTC ist?
|
Zitat:
das ist der "Nachfolger" vom GMT (Greenwich Mean Time). Sprich: UTC = GMT = Uhrzeit in Greewich (bei London) = Uhrzeit beim Null-Meridian = Weltzeit |
gut, danke.
|
Aus dem PSDK:
Zitat:
|
bischen spät, aber trotzdem danke Roman.
|
Moin Sharky,
aber denk' dran: Wenn Du eine korrekte LastAccessTime haben willst, musst Du die, wohl oder übel mittels GetFileAttributesEx auslesen. Machst Du das, z.B. mit FindFirst/FindNext und TSearchRec, so ist der Zeitpunkt des letzten Zugriffes der, an dem TSearchRec gefüllt wurde. Ist so ähnlich, als würdest Du Dir die Eigentschaften über das Kontextmenü im Explorer ansehen. Da ist das Datum des letzten Zugriffes auch der Moment, in dem Du Dir die Eigenschaften anzeigen lässt. |
Hai Christian,
danke für die Info. Das wuste ich nicht! Naja, aber da ich die Werte ja unmitelbar nach dem Find... abfrage reicht mir das. Es geht in dem Programm darum zu ermitteln welche Dateien seit einem freiwählbarem Zeitraum nicht mehr benutzt wurden um mit einem Ausdruck dieser Liste den Usern im Netzwerk unter der Nase herum zu wedeln und sie darum zu "bitten" die Verzeichnisse auf dem Server mal wieder aufzuräumen :lol: |
Moin Sharky,
wenn ich das jetzt richtig verstanden habe, brauchst Du das also, um den Zeitpunkt des letzten Zugriffes zu ermitteln? Und genau das geht mit FindFirst... schief. Oder hab' ich Dich jetzt falsch verstanden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz