Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Neu erzeugte Datei hat immer gleiche CreationDate (https://www.delphipraxis.net/204357-neu-erzeugte-datei-hat-immer-gleiche-creationdate.html)

Hobbycoder 22. Mai 2020 08:10

Neu erzeugte Datei hat immer gleiche CreationDate
 
Hi,

ich verwende in meinem Programm die Funktion FileDate auf das eigene Programm.
Nun ist mir aufgefallen, dass auf meinem Entwicklungsrechner die Exedatei immer das gleiche CreationDate aufweißt. Auch wenn ich die EXE per Hand lösche, oder auch über die Funktion Bereinigen in der IDE gehe. Wenn ich sie dann neu erzeuge, bekommt die Exedatei nicht das aktuelle Datum, sondern immer wieder das gleiche (in meinem Fall der 17.04.).

Das sollte doch ein Windowsproblem sein. Ich kann mir zumindest nicht vorstellen, dass Delphi das CreationDate direkt manipuliert. Gibt es da irgendeinen Cache, so dass ich lediglich eine falsche Anzeige bekomme, oder woran könnte das liegen?

Redeemer 22. Mai 2020 10:50

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Redest du vom Windows Explorer oder von CreationDate? Unter Windows NT 6 bleiben die Datumsangaben teilweise nach dem Löschen und Neuerstellen einer Datei erhalten, auch das Änderungsdatum wird manchmal nicht aktualisiert. Besonders lustig ist es, wenn man Dateien umbenennt. Habe das bisher aber nur im Windows Explorer beobachtet.

himitsu 22. Mai 2020 11:29

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Ehrlich wäre ich eher überrascht, wenn der Explorer einen Cache hat.
Denn wenn man was sucht und nur die Sortierung der Spalten ändert, dann sortiert der nicht einfach mal eben die Liste um, sondern löscht alles und fängt neu an zu suchen. :freak:

Eventuell ist da aber was im NTFS-Treiber drin, zusammen mit dem WindowsFileCache.

Im Dateisystem selbst sollte das FileEntry ja beim Löschen weg sein und beim Neuerstellen der Datei somit auch nicht mehr die alten Zeiten. (es wäre ja total schwachsinnig, wenn dort jemand eingebaut hat, dass diese Daten im Änderungslog gesucht und zurückkopiert würden)


Einzige Ausnahme, die ich kenne, ist z.B. das Zugriffsdatum, was man für SSDs und andere Speicherkarten deaktivieren kann, um die Schreibzyklen zu minimieren. Es könnte auch sein, dass die Aktualisierungsrate des Änderungsdatum beeinflusst würde, aber beim Löschen+Neuerstellen wäre das weg und anschließend neu (siehe vorhin "sollte das FileEntry ja beim Löschen weg").

Selbst beim Überschreiben löscht und erstellt die Delphi-IDE oft Dateien komplett neu, womit auch dort das Erstellungsdatum sich oft ändert.

jobo 22. Mai 2020 18:44

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Mal rumgesponnen:
Es gibt doch dieses Feature zum Überschreiben von Dateien, die in Benutzung sind. (vlt hängt es mit VSS zusammen-mir ist grad nicht geläufig, wie man es nennt), z.B. für Installationen, laufende EXEn usw..
Angenommen, ich lösche die EXE und erzeuge eine neue, habe aber noch eine Prozessleiche, die die originale Datei eigentlich sperrt (weil sie noch „läuft“), dann kommt dabei vielleicht das raus, was Du beobachtest?

p80286 22. Mai 2020 19:35

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Da ich unter windows schon öfter erlebt habe, daß das Erstelldatum vor dem Datum der letzten Änderung liegt. Sehe ich jede Datei-Datumsangabe unter Windows als Schätzung an. vor ein paar Jahren hat ein Forenmitglied diese seltsamen Angaben auch schlüssig erklärt. Mir war das allerdings zuviel Gehirnakrobatik.
You dont get what you believe to get.

Gruß
K-H

hoika 23. Mai 2020 08:32

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Hallo,
wird die Exe auf einem Netzlaufwerk angelegt?

Hobbycoder 25. Mai 2020 07:46

AW: Neu erzeugte Datei hat immer gleiche CreationDate
 
Ich habe das o.g. verhalten mehrfach nachstellen können, und habe alle mir einfallenden Szenarien getestet. Lediglich das erzeugen/kopieren in eine völlig neues Verzeichnis sorgte für ein korrektes Erstellungsdatum. Es lag alles auf der gleichen lokalen Festplatte.
Eigentlich läuft mein Entwicklungsrechner immer durch, und startet nur für Windows-Updates neu. Dann habe ich einen Neustart gemacht. Seit dem funktioniert es wieder. Mal schauen wie lange, denn bisher habe ich da nie drauf geachtet.

Das Änderungsdatum hat sich übrigens bei mir immer verändert, und war mit dem tatsächlichen Compilierungsdatum/Uhrzeit identisch.

Ich werde das beobachten, und danke für eure Beiträge.


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