Entwickler-Ecke
Windows API - Erstelldatum eines Ordners / einer Datei auslesen
funkymick - Fr 04.06.04 12:32
Titel: Erstelldatum eines Ordners / einer Datei auslesen
Hallo, möchte das Erstelldatum eines Ordners auslesen. Benutze dazu die funktion GetFileAttributesEx... das datum+uhrzeit soll dann als TDateTime zurückgegeben werden... mein quellcode sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function GetFileCreationDateTime(Filename:String):TDateTime; var t:TWin32FileAttributeData; Zeit:SYSTEMTIME; begin GetFileAttributesEx(pchar(FileName),GetFileExInfoStandard,@t); FileTimeToSystemTime(t.ftCreationTime,Zeit); Result:=SystemTimeToDateTime(zeit); end; |
Das dumme ist im windows-eigenschaften fenster wird mir die erstellzeit 9:44 angezeigt, was auch richtig ist. der TDateTime gibt mir aber 7:44 zurück...
jemand ne idee, was ich da beachten muss? vielleicht die verschiebung der zeit durch die zeitzone oder so? wenn ja: was muss ich ändern, damit ich auch die richtige zeit zurückbekomme?
Delete - Fr 04.06.04 12:47
Zitat: |
jemand ne idee, was ich da beachten muss?
|
Die Zeitzone und Sommer- / Winterzeit würde ich sagen.
Chatfix - Fr 04.06.04 12:47
Hallo,
kannst du um deinen Code bitte [delphi] und [/delphi] schreiben?
Oder Du markierst dienen Source-Code und klickst den Delphi-Button oben.
Damit kann man den Quelltext wesentlich leichter lesen weil die Syntax hervorgehoben wird.
Danke.
PS: :welcome:
funkymick - Fr 04.06.04 14:12
Luckie hat folgendes geschrieben: |
Zitat: |
jemand ne idee, was ich da beachten muss?
|
Die Zeitzone und Sommer- / Winterzeit würde ich sagen. |
so hab es jetzt vollständig... inklusive abfrage der sommer / winterzeit und zeitverschiebung... hat auch lange genug gedauert... :roll:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function GetFileCreationDateTime(Filename:String):TDateTime; var t:TWin32FileAttributeData; Zeit:SYSTEMTIME; MyTimeZoneInformation: TTimeZoneInformation; Bias:Double; begin result:=now; if not (FileExists(Filename) or DirectoryExists(Filename)) then exit; case GetTimeZoneInformation(MyTimeZoneInformation) of 1: Bias := (MyTimeZoneInformation.StandardBias+MyTimeZoneInformation.Bias) / 1440; 2: Bias := (MyTimeZoneInformation.DaylightBias+MyTimeZoneInformation.Bias) / 1440; else Bias:=0; end; GetFileAttributesEx(pchar(FileName),GetFileExInfoStandard,@t); FileTimeToSystemTime(t.ftCreationTime,Zeit); Result:=SystemTimeToDateTime(zeit)-Bias; end; |
Bollwerk - Mi 18.08.04 10:37
TSearchrec...
Um an das Datum zu kommen geht das doch mit der Routine
FindNext
schneller ?
aber einfacher zu lesen ;)
Aber dank der routine hat man wieder ein paar funktionen dazugelernt....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!