![]() |
Herausfinden wann ene Dtaei zuletzt geöffnet wurde
Hi!
Ich hab verschiedene Ordner wo ich irgendwelche Files aufbewahre, jedoch ist meine Ordnung nach dem Motto aus den Augen aus dem sind, deshalb möchte ich ein dDelphiprogramm schrieben das mir sagt wann ich eine Datei zuletzt geöffnet habe, sprich benutzt, falls diese dann länger als ein angegebener zeitraum nicht mehr genutzt wurde soll eine gegebene Aktion stattfinden. Meine Frage nun, wie finde ich heraus wann eine Datei zu letzte geöffnet wurde??? mfg phlux |
Re: Herausfinden wann ene Dtaei zuletzt geöffnet wurde
meinst du das Änderungsdatum? Wenn du das Änderungsdatum meinst, dann kuck dir das
![]() |
Re: Herausfinden wann ene Dtaei zuletzt geöffnet wurde
Dazu benötigst Du die Funktion GetFileAttributesEx. Die liefert Dir die letzte Zugriffszeit zurück. (:arrow: MSDN) Verfügbar ab Windows 98 / Windows NT 4.
...:cat:... |
Re: Herausfinden wann ene Dtaei zuletzt geöffnet wurde
Ich habe gerade in meiner privaten Code-Library ;-) diesen Code gefunden:
Delphi-Quellcode:
Der sollte nun auch das letzte Zugriffsdatum liefern.
function GetFileTimes(const FileName: string; var Created: TDateTime;
var Accessed: TDateTime; var Modified: TDateTime): Boolean; var h: THandle; Info1, Info2, Info3: TFileTime; SysTimeStruct: SYSTEMTIME; TimeZoneInfo: TTimeZoneInformation; Bias: Double; begin Result := False; Bias := 0; h := FileOpen(FileName, fmOpenRead or fmShareDenyNone); if h > 0 then begin try if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then Bias := TimeZoneInfo.Bias / 1440; // 60x24 GetFileTime(h, @Info1, @Info2, @Info3); if FileTimeToSystemTime(Info1, SysTimeStruct) then Created := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info2, SysTimeStruct) then Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias; if FileTimeToSystemTime(Info3, SysTimeStruct) then Modified := SystemTimeToDateTime(SysTimeStruct) - Bias; Result := True; finally FileClose(h); end; end; end; procedure TForm1.Button1Click(Sender: TObject); var Date1, Date2, Date3: TDateTime; begin if GetFileTimes(Edit1.Text, Date1, Date2, Date3) then begin ShowMessage('Created: ' + DateTimeToStr(Date1)); ShowMessage('Last Accessed: ' + DateTimeToStr(Date2)); ShowMessage('Last Modified: ' + DateTimeToStr(Date3)); end; end; Wenn ich mich nicht irre, kommt der Code von Swissdelphicenter |
Re: Herausfinden wann ene Dtaei zuletzt geöffnet wurde
Moin Phlux,
wenn Du Dir die Dateien mit FindFirst... auswählst, hast Du im TSearchRec.FindData Zugriff auf eine TWin32FindData Struktur. Diese entspricht der WIN32_FILE_ATTRIBUTE_DATA der API und enthält unter anderem den Eintrag LastAccessTime. Wichtig ist, dass jeder andere Zugriff auf die Datei, und sei es ein anklicken im Explorer um sich die Eigenschaften anzusehen, oder ein Auswählen im OpenDialog, die LastAccessTime ändert. Geöffnet bekommst Du also nicht damit heraus. |
Re: Herausfinden wann ene Dtaei zuletzt geöffnet wurde
N'abend :hi:
Ich denke das Alexanders Vorschlag die Lösung ist, werds mal ausprobieren werd mich mal nochmal melden falls es nicht klappt. Thx für die vielen Antworten :thumb: mfg phlux :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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-2025 by Thomas Breitkreuz