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 Änderungsdatum einer Datei wird nicht aktualisiert... (https://www.delphipraxis.net/124110-aenderungsdatum-einer-datei-wird-nicht-aktualisiert.html)

gibb 14. Nov 2008 15:17


Änderungsdatum einer Datei wird nicht aktualisiert...
 
Hallo zusammen,

Als erstes hoffe ich, das ich hier in der richtigen kategorie bin ;)

Als zweitens natürlich das ihr mir helfen könnt...

Also folgendes:

Ich öffne eine Datei:
Delphi-Quellcode:
      AssignFile(FFileHandle,FFileName);
      Append(FFileHandle);
Geschrieben wird die Datei mit Flush...
Delphi-Quellcode:
    Flush(FFileHandle);
Jetzt habe ich folgendes, sonderbare verhalten...

In diese Datei schreibe ich solange mein Prog läuft immer und immer wieder rein. Mehrmals Pro minute.
Wenn die datei vom Programm selber neu erstellt wird dann funktioniert alles wunderbar... dann wird auch das Änderungsdatum vortlaufend angepasst.

Wenn die datei jedoch bereits besteht wird das änderungsdatum beim leeren der datei (löschen der daten) zwar auf die aktuelle startzeit des Progs gesetzt, jedoch anschliessend nicht mehr aktuallisiert.

Jemand ne idee woran das liegen könnte ?

gruss gibb

Fridolin Walther 14. Nov 2008 15:23

Re: Änderungsdatum einer Datei wird nicht aktualisiert...
 
Das Änderungsdatum wird nur gesetzt, wenn eine Datei geschlossen wird. Flush schließt die Datei aber nicht. Davon abgesehen haben die Zeitstempel eine gewisse Ungenauigkeit - je nachdem auf welches Dateisystem Du schreibst.

gibb 14. Nov 2008 15:29

Re: Änderungsdatum einer Datei wird nicht aktualisiert...
 
Delphi-Quellcode:
      //Datei schliessen
      FFileReady:= false;
      CloseFile(FFileHandle);
      //und gleich wieder öffnen (im Append-Modus)
      AssignFile(FFileHandle,FFileName);
      Append(FFileHandle);
sollte nicht daran liegen hab den source einmal dazwischen geschalten... bringt keine Abhilfe. (So gescheit war ich also auch ;) )

Und 15 min sind einwenig eine grosse abweichung für meinen geschmack ;)

gruss gibb

Fridolin Walther 14. Nov 2008 15:39

Re: Änderungsdatum einer Datei wird nicht aktualisiert...
 
Zitat:

Timestamps are updated at various times and for various reasons. The only guarantee about a file timestamp is that the file time is correctly reflected when the handle that makes the change is closed.

Not all file systems can record creation and last access times, and not all file systems record them in the same manner. For example, the resolution of create time on FAT is 10 milliseconds, while write time has a resolution of 2 seconds and access time has a resolution of 1 day, so it is really the access date. The NTFS file system delays updates to the last access time for a file by up to 1 hour after the last access.
Eigentlich sollten 15 Minuten bei List Write ausreichen für FAT und NTFS. Geschlossen wird die Datei auch. Entsprechend könnte es noch sein, das das setzen der Last * Times abgeschaltet wurde. Das ist bei NTFS ein beliebter "Tuning Trick".

gibb 14. Nov 2008 15:50

Re: Änderungsdatum einer Datei wird nicht aktualisiert...
 
Also, ich hab bemerkt es aktuallisiert doch... einfach ziemlich später.... :( Von wo hast du das Zitat =?

gruss sevEnil

habs gefunden ;)

Fridolin Walther 14. Nov 2008 15:56

Re: Änderungsdatum einer Datei wird nicht aktualisiert...
 
Von hier:
http://msdn.microsoft.com/en-us/library/ms724290(VS.85).aspx


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