Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Herausfinden wann ein Ordner erstellt wurde (https://www.delphipraxis.net/108791-herausfinden-wann-ein-ordner-erstellt-wurde.html)

xZise 19. Feb 2008 17:06


Herausfinden wann ein Ordner erstellt wurde
 
Hallo DP,
ich bin immerhin soweit, dass ich sagen kann, wann eine Datei erstellt/modifiziert oder wann das letzte mal auf ihr zugegriffen wurde.
Nun funktioniert das leider nicht bei Ordnern :)
Meine Frage ist nun, wie macht man das dann be Ordnern?

MfG
xZise

DeddyH 19. Feb 2008 17:35

Re: Herausfinden wann ein Ordner erstellt wurde
 
Z.B. so

Dani 19. Feb 2008 18:23

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von DeddyH
Z.B. so

Vorsicht, der Code beachtet nicht Sommer/Winterzeit. Sogar der Explorer liefert die falsche Zeit, wenn man einen Ordner in der Sommerzeit erstellt und dann in der Winterzeit die Eigenschaftsseite anschaut. Dieser Beispielcode beachtet die Zeitzone und Sommer/Winterzeit:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  AppDir: String;
  FileInfo: TWin32FileAttributeData;
  CreationDate: TDateTime;
  LocalTime, SystemTime: TSystemTime;
begin
  AppDir := ExcludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
  if GetFileAttributesEx(PChar(AppDir), GetFileExInfoStandard, @FileInfo) and
     FileTimeToSystemTime(FileInfo.ftCreationTime, SystemTime) and
     SystemTimeToTzSpecificLocalTime(nil, SystemTime, LocalTime)
  then begin
    CreationDate := SystemTimeToDateTime(LocalTime);
    ShowMessage(DateTimeToStr(CreationDate));
  end else begin
    ShowMessage(SysErrorMessage(GetLastError));
  end;
end;
[/klugscheiss]

Luckie 20. Feb 2008 08:59

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von Dani
Zitat:

Zitat von DeddyH
Z.B. so

Vorsicht, der Code beachtet nicht Sommer/Winterzeit.

Was muss man denn da Sommer- und Winterzeit beachten? Ich bin am 31.8.1974 um 8 Uhr Abends geboren. Muss ich, wenn ich dir das zur Winterzeit sage eine Stunde abziehen oder dazu addieren? Oder wenn mich jemand fragt, sage ich ja auch nicht: "Ich wurde um 8 Uhr Abends Sommerzeit geboren." :wall: Wir haben übrigens gerade, nach meiner Uhr 10 Uhr Winterzeit.

xZise 20. Feb 2008 14:45

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Dani
Zitat:

Zitat von DeddyH
Z.B. so

Vorsicht, der Code beachtet nicht Sommer/Winterzeit.

Was muss man denn da Sommer- und Winterzeit beachten? Ich bin am 31.8.1974 um 8 Uhr Abends geboren. Muss ich, wenn ich dir das zur Winterzeit sage eine Stunde abziehen oder dazu addieren? Oder wenn mich jemand fragt, sage ich ja auch nicht: "Ich wurde um 8 Uhr Abends Sommerzeit geboren." :wall: Wir haben übrigens gerade, nach meiner Uhr 10 Uhr Winterzeit.

Naja indirekt tut man das durch MEZ/MESZ ;)

Wir haben 15:45 Uhr MEZ...

MfG
xZise

Luckie 20. Feb 2008 14:51

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von xZise
Naja indirekt tut man das durch MEZ/MESZ ;)

Wir haben 15:45 Uhr MEZ...

Ja gut, aber es wird nichts umgerechnet. Man müsste eben nur feststellen, ob das Datum in der Sommer- oder Winterzeit liegt und dann entsprechend angeben.

Dani 20. Feb 2008 15:50

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von Luckie
Oder wenn mich jemand fragt, sage ich ja auch nicht: "Ich wurde um 8 Uhr Abends Sommerzeit geboren."

Richtig! Wenn ich aber am 20. Juni um 10 Uhr (also Sommerzeit) einen Ordner anlege, meint Explorer am 2. Februar (also Winterzeit), dass der Ordner um 9 Uhr angelegt worden sei, was ja nicht stimmt. Der von DeddyH verlinkte Code liefert sogar 8 Uhr.

xZise 20. Feb 2008 16:02

Re: Herausfinden wann ein Ordner erstellt wurde
 
Zitat:

Zitat von Dani
Zitat:

Zitat von Luckie
Oder wenn mich jemand fragt, sage ich ja auch nicht: "Ich wurde um 8 Uhr Abends Sommerzeit geboren."

Richtig! Wenn ich aber am 20. Juni um 10 Uhr (also Sommerzeit) einen Ordner anlege, meint Explorer am 2. Februar (also Winterzeit), dass der Ordner um 9 Uhr angelegt worden sei, was ja nicht stimmt. Der von DeddyH verlinkte Code liefert sogar 8 Uhr.

Naja...
Wenn man den Ordner am Tag vor der Umstellung von MESZ auf MEZ einen Ordner erstellt, wurde der um 20:00 Uhr erstellt. 24 Zeitstunden weiter sind wir ohne Umstellung wieder 20:00 Uhr, da aber die Uhrzeit zurück gestellt wird haben wir 19:00 Uhr. Der Explorer sagt nun er wurde gestern um 19:00 Uhr angelegt, was an sich stimmt, weil der Ordner 24 Stunden "alt" ist.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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