Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Erstellungsdatum eines Verzeichnis ermitteln?

  Alt 28. Jan 2008, 13:55
Hallo marabu,

deine Funktion funktioniert korrekt für mein 'c:\windows'. Sie gibt mir das korrekte Datum '28. 01. 2004 11:54:54' zurück. Zumindest weißt auch der Explorer das auch so aus.

Bei einem weiterem Test-Verzeichnis (erstellt am '21.06.2007 17:48:37') unterscheidet sich das Datum, genauer, die Zeit um eine Stunde.
Es wird eine Stunde später angezeigt ('18:48:37') als im Explorer. Vermutlich hat es etwas mit Winder- und Sommerzeit zu tun, denn das Windows-Verzeichnis ist (wie man sehen kann) zur Winterzeit angelegt und mein Test-Verzeichnis zur Sommerzeit.

Nun bleibt die Frage, ob man das mit
Delphi-Quellcode:
//aus DP-Lib GetFileTimes:
if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then
  Bias := TimeZoneInfo.Bias / 1440; // 60x24

GetFileTime(h, @Info1, @Info2, @Info3);
if FileTimeToSystemTime(Info1, SysTimeStruct) then
  Created := SystemTimeToDateTime(SysTimeStruct) - Bias;
korrekt erschlagen kann.
Werde ich mal testen, denn stutzig macht mich himitsu Test-Programm-Ausgabe, die ebenfalls eine Stunde falsch liegt. Allerdings eine Stunde zu früh, in beiden fällen 'C:\Windows' und 'C:\Windows\Win.ini'.

Hallo himitsu

Ausgabe Projekt1.exe:
Code:
D:\Temp>Project1.exe
C:\Windows

CreateFile>GetFileTime:
"C:\Windows" nicht gefunden oder kein Zugriff
>Zugriff verweigert

FindFirstFile:
28.01.2004 10:54:54 GMT
>Zugriff verweigert


C:\Windows\Win.ini

CreateFile>GetFileTime:
18.08.2001 19:00:00 GMT
>Der Vorgang wurde erfolgreich beendet

FindFirstFile:
18.08.2001 19:00:00 GMT
>Der Vorgang wurde erfolgreich beendet


weiter mit [Enter]
Auch mein Test-Verzeichnis, welches auch mit marabu's Funktion nicht korrekt ermittelt wird, wird hier eine Stunde zu früh angezeigt (21.06.2007 16:48:37). Das sind schon 2 Stunden Differenz.

Okay, die Zeiten sind in GMT angegeben, aber das Winter- Sommerzeit-, allgemein das Zeitzonen-Problem weiß ich nicht zu lösen. Dafür bin ich irgendwie zu blöde.

Zu guter Letzt bleibt noch die Frage, warum die verwendete API-Funktion GetFileTime in himitsu's Code einen zumindest plausiblen Wert zurück bringt und in der DP-Lib-GetFileTimes nicht?
Die GetFileTimes-Funktion funktioniert für Dateien problemlos, nur mit Verzeichnisse macht mir die Funktion Schwierigkeiten.

Danke und Grüße
gmc
  Mit Zitat antworten Zitat