Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "Geändert am" ermitteln? (https://www.delphipraxis.net/101335-geaendert-am-ermitteln.html)

xZise 11. Okt 2007 16:28


"Geändert am" ermitteln?
 
Wie kann ich das ermitteln, welches beim Explorer unter "Geändert am" steht?
z.Zt. benutze ich FileAge, welches aber nicht bei Pfaden funktioniert, und welches deprecated ist :)

Abgesehen von der umständlichen Umwandlung und überprüfung (Teilweise kommt "-1" raus?! Liegt wohl daran, dass ich unter User programmiere :)

MfG
xZise

DeddyH 11. Okt 2007 16:33

Re: "Geändert am" ermitteln?
 
Die Funktion FindFirstFile befüllt Dir eine Struktur vom Typ TWin32FindData.
Zitat:

typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
Schau Dir die FILETIME-Felder mal an.

Funky-Sepp 11. Okt 2007 16:34

Re: "Geändert am" ermitteln?
 
Hi,

hatte das Problem auch mal, hoffe dies hilft dir weiter.

Delphi-Quellcode:

function GetFolderDateTime( aFolder : String ) : TDateTime;
var
  SR: TSearchRec;
begin
  if FindFirst( ExcludeTrailingBackslash( aFolder ), faAnyFile, SR) = 0 then
    Result := FileDateToDateTime(SR.Time)
  else Result := 0;
  FindClose(SR);
end;
sollte auch für Dateien funktionieren.

Ist zwar wahrscheinlich nicht die beste lösung, aber es ist eine.

s-off 11. Okt 2007 16:36

Re: "Geändert am" ermitteln?
 
Hallo,

zum Beispiel so:
Delphi-Quellcode:
Function TForm1.GetDate(_sValue: String): TDateTime;
Var
   SR: TSearchRec;
Begin
   If FindFirst(_sValue, faAnyFile, SR) = 0 Then Begin
      Result := FileDateToDateTime(SR.Time);
      FindClose(SR);
   End;
End;
Funktioniert auch mit Verzeichnisnamen.

Edit: Na da sind wir uns ja einig :mrgreen:

OregonGhost 11. Okt 2007 16:43

Re: "Geändert am" ermitteln?
 
Ich könnte zwar schwören, das neulich schonmal hier geschrieben zu haben, aber:

Warum eigentlich FindFirst statt GetFileAttributesEx? Mir kommt es so unintuitiv vor, eine Datei zu suchen, die man bereits kennt, statt sie einfach direkt abzufragen ^^

xZise 11. Okt 2007 17:04

Re: "Geändert am" ermitteln?
 
Zitat:

Zitat von OregonGhost
Ich könnte zwar schwören, das neulich schonmal hier geschrieben zu haben, aber:

Warum eigentlich FindFirst statt GetFileAttributesEx? Mir kommt es so unintuitiv vor, eine Datei zu suchen, die man bereits kennt, statt sie einfach direkt abzufragen ^^

^^

Naja, der doppelte Vorschlag sieht okay aus ;) Zum ersten müsste ja fast damit zusammenhängen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz