![]() |
Nö, Du hast mich richtig verstanden.
Was genau geht denn da schief? Bis jetzt habe ich das mit einen einfachen Test Code versucht und immer die richtigen werte (dachte ich bis jetzt) bekommen. Kannst Du das Problem etwas genauer erläutern? Danke. |
Moin Sharky,
also bei mir war es bislang so, dass die über FindFirst... ermittelte LastAccessTime im TSearchRec immer dem Zeitpunkt entsprach, an dem ich das Programm habe laufen lassen, weil dieser Zugriff vom Programm vom Betriebbsystem als "Letzter Zugriff" gewertet wurde, was die Aussagekraft für diesen Wert natürlich auf null gesetzt hat. Nur wenn ich den Pfad eine Datei angegeben hatte, und mir dann mit GetFileAttributesEx die Informationen über die Datei ausgelesen hatte stimmte der Wert. Da Du ja sagst, das es bei Dir auch mit FindFirst... korrekt funktioniert, werde ich das aber gleich noch mal überprüfen. Oben genanntes Verhalten hatte ich unter W2K SP1 bzw. SP2. |
Hai Christian,
hier mal mein Stück TestCode:
Code:
System:
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b] sr : TSearchRec; searchpath : [b]string[/b]; [b]begin[/b] Memo1.Clear; searchpath := 'c:\testfiles\*.*'; [b]if[/b] (FindFirst(searchpath, faAnyFile - faDirectory, sr) = 0) [b]then[/b] [b]begin[/b] Memo1.Lines.Add(sr.FindData.cFileName); Memo1.Lines.Add('Erstellungsdatum : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftCreationTime))); Memo1.Lines.Add('letzte Änderung : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftLastWriteTime))); Memo1.Lines.Add('letzter Zugriff : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftLastAccessTime))); Memo1.Lines.Add('-----------------'); [b]end[/b]; [b]while[/b] FindNext(sr) = 0 [b]do[/b] [b]begin[/b] Memo1.Lines.Add(sr.FindData.cFileName); Memo1.Lines.Add('Erstellungsdatum : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftCreationTime))); Memo1.Lines.Add('letzte Änderung : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftLastWriteTime))); Memo1.Lines.Add('letzter Zugriff : ' + ' ' + DateTimeToStr(FileTimeToDateTime(sr.FindData.ftLastAccessTime))); Memo1.Lines.Add('-----------------'); [b]end[/b]; FindClose(sr); [b]end[/b]; Delphi 5 ent. Windows 2000 SP1 |
Moin Sharky,
bei mir sieht der Testcode so aus:
Code:
und funktioniert (erstaunlicher Weise).
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b] sRootDir : [b]string[/b]; srWork : TSearchRec; stWork : TSystemTime; [b]begin[/b] Memo1.Lines.Clear; sRootDir := GetPSDKIncludeDir; [b]if[/b] FindFirst(sRootDir+'\*.*',faAnyFile,srWork) = 0 [b]then[/b] [b]begin[/b] [b]try[/b] [b]repeat[/b] [b]if[/b] (srWork.Attr [b]and[/b] faDirectory) <> faDirectory [b]then[/b] [b]begin[/b] FileTimeToSystemTime(srWork.FindData.ftLastAccessTime,stWork); Memo1.Lines.Add(Format('%d.%d.%d %d:%d:%d',[stWork.wDay,stWork.wMonth,stWork.wYear,stWork.wHour,stWork.wMinute,stWork.wSecond])); [b]end[/b]; [b]until[/b] FindNext(srWork) <> 0; [b]finally[/b] FindClose(srWork); [b]end[/b]; [b]end[/b]; [b]end[/b]; Jetzt muss ich direkt mal suchen, was ich das letzte Mal anders gemacht hatte. (falls ich des entsprechende Stückes Sourcecode noch habhaft werden kann ;-)) |
Re: TWin32FindData.TFileTime nach TDateTime?
Hi Sharky,
gesucht, gefunden und FEHLER :!: Durch den UTC-Shift kann sich auch das Datum ändern, dieses hast Du aber nicht berücksichtigt ;) Siehe auch mal nach ![]() ...:cat:... |
Re: TWin32FindData.TFileTime nach TDateTime?
hallo sakura,
könnte es sein das sich das problem in den letzten 1 1/2 jahren erledigt hat :mrgreen: raik |
Re: TWin32FindData.TFileTime nach TDateTime?
Zitat:
...:cat:... |
Re: TWin32FindData.TFileTime nach TDateTime?
du hast explizit sharky angesprochen :wink:
aber ansonsten hast du natürlich recht raik |
Re: TWin32FindData.TFileTime nach TDateTime?
Zitat:
Uff... es ist noch zu früh für mich. Kannst Du das mal näher erklären? :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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