![]() |
Problem mit Funktion: GetFileLastAccessTime
Hallo
Ich habe hier ein bisschen rumgesucht, weil ich eine Funktion/Prozedur brauchte, um den letzten Zugriff einer Datei auszulesen. Dabei habe ich dashier gefunden:
Delphi-Quellcode:
Das Problem ist, dass ich nicht das Datum/die Uhrzeit vom letzten Zugriff bekomme, sondern das von der letzten Änderung.
function GetFileLastAccessTime(sFileName: string): TDateTime;
var ffd: TWin32FindData; dft: DWORD; lft: TFileTime; h: THandle; begin // // get file information h := Windows.FindFirstFile(PChar(sFileName), ffd); if (INVALID_HANDLE_VALUE <> h) then begin // // we're looking for just one file, // so close our "find" Windows.FindClose(h); // // convert the FILETIME to // local FILETIME FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft); // // convert FILETIME to // DOS time FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo); // // finally, convert DOS time to // TDateTime for use in Delphi's // native date/time functions Result := FileDateToDateTime(dft); end; end; ... procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := DateTimeToStr(GetFileLastAccessTime('C:\datei.dat')); end; Also ob ich oben in der Funktion das hier
Delphi-Quellcode:
oder
FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft);
Delphi-Quellcode:
stehen habe macht keinen Unterschied.
FileTimeToLocalFileTime(ffd.ftLastWriteTime, lft);
Gibt es denn vielleicht noch eine andere Möglichkeit den letzten Zugriff zu lesen? -SiMc |
Re: Problem mit Funktion: GetFileLastAccessTime
Zwei mögliche Gründe dafür:
|
Re: Problem mit Funktion: GetFileLastAccessTime
Zitat:
Zitat:
Zitat:
Grüße vom marabu |
Re: Problem mit Funktion: GetFileLastAccessTime
Delphi-Quellcode:
function GetFileLastAccess(const FileName: String): TDateTime;
var SR: TSearchRec; stUTC, stLocal: TSystemTime; begin Result := 0; if FindFirst(FileName, faAnyFile, SR) = 0 then begin if FileTimeToSystemTime(SR.FindData.ftLastAccessTime, stUTC) then if SystemTimeToTzSpecificLocalTime(nil, stUTC, stLocal) then with stLocal do Result := EncodeDateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds); FindClose(SR); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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